Current schema collector implementation has issues. When it extracts
option information from source files, it imports them into python
runtime. If imported module has third-party dependencies, they are
also imported thus making it a requirement to have third-party
libraries installed on the system where schema collection is
executed. Also, there are situations when option group guessing
is inaccurate.
New schema collector uses code analysis and rewriting techniques
to extract just enough code to collect configuration option data.
Then it evals it, causing configuration options to be added to
vanilla oslo.config subsystem. Then this information gets dumped.
Implementation uses various heuristics but is more accurate than
existing one. Was tested on 'nova' and 'cinder' projects.
Change-Id: I0bd2e93288478e7a3db273055597b7bedfbf0625