Refactor to minimize "undesired" classes from being loaded

Previously, the class list was obtained considerably before the files
were included.  This gave the chance for undesired classes (such as
helper mock classes) to get autoloaded and included in the test list.

Regardless, we need logic to separate "testable" classes from
everything else
Replace class loading with PHP parsing

Class loading, while simple and elegant to implement, makes testing difficult
since tests may repeatedly try to load the same classes at runtime.
It also has some strange edge cases in practice.  Replacing that
with PHP token parsing to manually identify classes, namespaces
and parent classes.
Rearrange DIC setup so that discovery and cmdline are streamlined
Add phpunit and vfsstream deps
Basic tests for RecursiveFileLoader
Rearrange into Parser/ParserFactory

Previous iteration was untestable as Parser was instantiated
directly in the RecursiveFileLoader class
Add mockery
Update test
Parser test