API Gateway router as an instance of generic meta API router.

 - Controller routes for API Gateway and Unit Tests for the routes
 - Generalized API gateway router to a "meta api" route handler.

The API gateway experiment and controller changes is an example of a more general pattern where we use whisk actions to extend the controller for experimental API changes without necessarily changing the controller. This commit generalizes the API gateway route handler so that system packages are self-encoding as "meta" api handlers (via an annotation on the package and an explicit mapping from http verbs to action names to invoke in response) the subject making the activation request is subject to entitlemnt checks for activations (this is tantamount to limiting API requests from a single user) invoking actions directly rather than posting to the controller REST interface checking that meta packages exist and performing cursory sanity checks tests.

  - Meta router is accessible through /experimental.
  - Add entitlement check before invoking meta api handler.
  - Warn if meta api handler is public.
  - Post meta action activation directly to load balancer, bypassing REST API.
  - Pass API context information to meta actions.
  - Pass request body to meta action as well. Must be application/json type.
  - Pass remaining path URI to meta action.
  - Add verb to __ow_ context submitted to action.
  - Additional tests for name/namespaces.
4 files changed