Adding class to retrieve information about a PHP files' class, functions etc...

The `AnalyzedFile` class analyzes a file for PHP constructs such as namespaces, classes, functions, etc.. when instantiated. This class will be used for doing theme analysis.

This class uses mostly regular expresssions under the hood to do the parsing. While tokens could've been used instead, using regular expressions allows us to do less parsing of the exact contents of functions and the like at the cost of a bit of obscurity.
Adding Analyzer metas.

Analyzer metas are designed to arrange and present meta information about the theme and files that does not reflect the result of a check or any part of the review.

There is a meta class for the different things we need to track meta information for. This includes things like files and functions. Each classes is customized slightly to best present its' information.

The `MetaGroup` class is a special class because it is designed to act as a container rather than a meta for a specific thing. It can be used to group similar metadata elements together.

After an Analyzer is run it should populate a number of meta items representing the data it has aggregated. These items will eventually be surfaced based on their hierarchy. (Each meta can be given child elements, and a child may belong to more than one parent.
Adding `BaseAnalyzer` class and the `PHPAnalyzer`.

The `BaseAnalyzer` class will be the parentclass of all analyzers (similar to `BaseScanner`).

The `PHPAnalyzer` analyzes the a php file for all of its functions, classes etc.. and adds all of the information to metas to be presented to the user.
Customizing the scanner classes to allow for specifications of analyzers for individual reviews.

Customizing the scanner classes so that we may now specify which things should be analyzed by a review, similarily to how we already specify which checks to run.

We now pass `register_review()` an optional second array which contains a list of Analyzers to run, in the same format as checks are already passed. Both the checks and the analyzers eventually get passed down to the `BaseScanner` class.

The `BaseScanner::scan()` function now takes an optional argument `$scanners` argument which specifies which scanners to run. By default it will run both `checks` and `analyzers` but changing the values in this array will change what is run.
Adding output of the analyzers to the UI.

Right now the output is just shown as a series of nested jQuery accordions. Working with @keoshi to make this easy on the eyes and useable.