Upgrade api.json to support simpler structure
Work in progress on validation + parsing of implicit types
Checkpoint commit in new JSON format
First pass at validation w/ model and operations broken out
Add resolver for references to allow us to properly lookup fields

 - Works recursively and does not assume order for model fields
 - Works linearly for self references - so if you create a model:

    categories:
      key
      parent_key references categories.key

   This particular use case will only work if key is defined prior
   to parent_key (which feels natural but also possible to change
   if we need to in the future)
Restore existing unit tests related to references
Add type array parsing (e.g. [string] for types)
Rename Response.resource => Response.datatype
Handle datatypes only in internal parsing pass. Removed WrappedDatatype
fix bug when generating routes if there are no operations in api.json file
Remove NPE if resource not found
More tests for iris hub api.json
More tests for iris hub api.json
Checkpoint with all iris hub resources moved to new format
Checkpoint with all iris hub resources moved to new format
Reference now a case class of model plural name and field name

 - Types unchanged, but more accurate representation of what a
   Reference is
Operation.path: Change from Option[String] => String

 - Main change is to default the operation path when parsing the api.json
   file - we can default early to the resource path and keep that default
   isolated to InternalServiceDescription
Better validation messages for data type errors
Introduce Parameter class and ParameterType class

 - This breaks the assumption that parameters and fields are the same. Parameters
   have their own type now (ParameterType) and do not support References.
 - Paramter Type is a way to capture if the argument is a primitive with a simple
   datatype or a nested model (ModelParameterType)
Validate that all parameters have a name and a type field