WIP Thrift refactoring:
 - Replace Class<?> with PageDefinition and Method with MethodDefinition
 - Move simple running commands into Thrift interface
 - Get (most of) Core unit tests passing again
WIP Thrift refactoring:
 - Move custom submit/traverser & instantiator to remote executor
WIP Thrift refactoring: Move after route invocation to remote executor
WIP Thrift refactoring: Move placeholder lifecycle hander creation to remote executor
Remove dependency from core on annotations
WIP Thrift refactoring: Reference method owning class by ID to avoid cycle
WIP Thrift refactoring: Fix most remote executor unit tests
WIP Thrift refactoring: Implement simple DriverWrapper delegation
WIP Thrift refactoring:
 - Remove need for coordinator to know crawl start point URLs
 - Change Thrift interface to startRoute() instead of visit()
WIP Thrift refactoring:
 - Start routes by page ID
 - Introduce ExecutorContext to encapsulate executor's current state
WIP Thrift refactoring:
 - Delegate ExecutorHandler to ExecutorContext
WIP Thrift refactoring:
 - Delegate traversing from ExecutorContext to PageTraverser
WIP Thrift refactoring:
 - Delegate traversal from ExecutorHandler to ExecutorContext
WIP Thrift refactoring:
 - Support circular reference traversal methods
WIP Thrift refactoring:
 - Refactor LabelledXssGeneratorImpl for remote executor
WIP Thrift refactoring:
 - Support circular reference traversal methods (fix)
WIP Thrift refactoring:
 - Reference method return class by ID to avoid cycle
Update integration test
WIP Thrift refactoring:
 - Fix dependency conflict
WIP Thrift refactoring:
 - Replace PageDefinitionMapping with ThriftToReflectionLookup