Set up Nexus service

You can now run `hallwayd` with the `nexus` role. Default starts up on port
`8060`. Everything is pretty much modeled after how Dawg runs.
Restrict nexusService with HTTP auth

Really we just shouldn't expose this externally at all, but the `nexusClient` is
sending auth and this will prevent some slipups.
Add nexusService/app

This returns app info to the `nexusClient`, or an error/404 if it must. It takes
a query parameter `id` based on the `nexusClient` implementation.
Require `async` in `nexusClient`

Wasn't explicitly required, just relying on something else to have loaded it.
Upgrade mikeal/request

We had it pegged to a beyond-release commit for a fix we need, but now we need
the HTTP auth handling that was added a little later. This forwards us to a
point about 4 weeks ago when that and some fixes settled.
Add `nexusClient` config to defaults

It needs these settings as well as the top-level Redis setup, which we should
migrate the workers and taskman to as well.
Get `nexusClient.getApp` working

`request` will parse a JSON responsr for us, so we can save some logic there. We
also need to `JSON.stringify` the app data before we set it (and set the app
object, not the `null` we got from the cache) or else we get `'[object Object]'`
out later.