Jhford rewrite

I have the basic API written.  I'm not sure how to get generate an api reference json blob, so i don't have it in the client, which results in Auth being next to impossible to do.  For now, I have the deferred authentication commented out.

All of the messages (other than ping) have JSON Schema set up, and I don't suspect that they will change.  I need to add a stats method as well.

I have a couple of questions in routes/v1.js regarding scopes, and I'm not sure what you mean about the scope escalation thing.

For the Worker Type entity, I'm storing things in entity keys, using JSON to represent them, which is working well for all cases other than when a value is undefined.  It would be nice if we could store an entity value as undefined.
First yes, we will encode secrets in workerType information... In particular we'll put credentials and other config stuff into `user-data` on ec2 (we'll encrypt it using openpgp.js too).

-------
So, I've had mixed feeling about this many places: queue for listing artifacts, auth for listing clients... Both have similar concerns.
Anyways, I think the simplest and best solution in this case, is to only return a list of workerType names that exists. **only the names** I don't see why those shouldn't be public... For an admin wanting to edit a workerType, the admin can fetch the full definition using another API end-point. And if the admin doesn't have scopes to access the specific workerType requested, the admin will get an error in the editor.

This way we can have an editor where some users are only able to edit some workerTypes. And we would have a public API end-point that utilities like task creator can use to show people which possible workerTypes they can submit to.

-------
This is a bit similar to artifacts on the queue. You can list names of all artifacts, but when you try to get one you may or may not succeed depending on scopes.