API Added creation of workflow defs from templates

* WorkflowTemplate container class for defining workflow templates in config
  that will then be processed in code
* Added ability to select a template when creating a new workflow definition
* workflow actions created based on a structure defined in a template
* Added tests to ensure actions created properly
* Added config for simple review workflow
* Display workflow template description when viewing a definition with that template as its source
* Added getNamedTemplate method to service for locating a template by its name
* Trigger definition population directly via WorkflowTemplate's api
* Accept the definition as a parameter to createActions so that the actions
  get bound to the definition directly
* Actions get sort order populated immediately
* Added doco for yml config options
* Added simple test case for action creation
* Added description field for templates
* Templates can be specified in yml configuration
* Can specify actions + transitions (and relationship between the two)
* Can provide a description for the template, and a version number. Version
  number is not strict, but if different from the version stored, is assumed
  that there is an 'upgrade' that can be applied.
* Workflow definition indicates whether the workflow is bound to a template
  and allows user to selectively update the definition if the definition
  has been changed