code re-org and refactor

* moved schema keyword implementations into individual files for easier maintenance and future refactoring support.
* refactored the main class to delegate more functionality to the draft-04 tester
* refactored schema registration into its own class
* flattened several instances of recursion in hotspots