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.
It is a bit confusing, I'll add a comment. It just means that the client value is always considered true unless its set to specifically false.