Route annotations in routes.json and hidding routes from the client

This pull request allows users to specify annotations in routes.json. By default routes in routes.json contain an annotation.client set to true. Setting a route's annotations.client to false prevents the route from being exposed to the client.