Validate posted schemas

This PR attempts to define what json is valid for posting to the workflow service.  The schema I present here is based in part on some work already done by @mark-burnett, but deviates from that work somewhat.  Some areas that I've already identified for discussion are:

* minItems and minProperties values
* whether execution parameters should share the same validation as inputs (via the definitions/inputDictionary type)
* whether tasks and edges in the top-level should be replaced with a "workflow" property of type definitions/workflow

Existing test cases were updated to support the definition of tasks and the removal of the environment property at the top-level.

Closes #65 
Can we remove the `InvalidWorkflow` exception class?