Refactor object model and provide workflow service interface

Refactored the java object model to create cleaner abstractions between MR workflows and nodes and other types of workflows. Added support for a workflow read service, which is used to serve the list of workflows to a workflow UI.