XD-561 Parse now verifies that all modules are valid.

XD-561 Tests now support enhanced parser

Merged code after rebase.
Notes:
*You will see that in EnhancedParser that I left the original determineType in the code commented out.  I'll remove this with the LGTM.  It is there in case the reviewers find a bug in their regressions.
*You will also see a lot of mocks for the ModuleRegistry in the controller tests.  This is because we are now relying on the registry to identify Module Type.