Formalized Resource Criteria API

An effort to abstract query parameters so that the resources inform
the system itself how the API is exposed. Could be the first step in
making our API self-describing.

- Deprecated Browse, it was serving only as an abstraction layer
  for Criteria.
- The Criteria service now provides several lambda builders to assist
  in the generation of search criteria. Filtering criteria against a
  resource, mapping criteria against parameters, and generating search
  lambdas.
- Search Criteria controller now has an initialization method that
  allows you to configure it at runtime to the resource it's supposed to
  provide search criteria for.
- Criteria Tag Item has been split out to be more generic.
- Managing criteria has been delegated to the resource itself. Now
  it falls to Project, Story, etc. to inform the system what fields
  it accepts as query parameters.
- Common text criteria resolver has been added.
- Header controller has been switched to use new Resource Criteria API.
- Stories may now be queried on the Story Status field.
- Services are now generated via a service factory rather than by
  using storyboardApiSignature.
- Search is now handled via the resource.search() method.

Change-Id: I1e355320c90f7cdc8cb6ee2191fe819ff7094665