Added support for macro usage gathering, and bug fixes.

Bugs introduced to the PreprocessorDirective gathering process have been
resolved. Additionally the listener was expanded to allow for gathering
information on macro instantiation.