Replace `JsMap`s with structs where possible.
Handlers: Clean up client count checks.

* Use `app.ClientCount() >= max_connections` for all checks.
* Remove redundant type conversions.
* Fix a typo in `RealStatusHandler` that caused the handler to
  erroneously report the server as unhealthy.
Handlers: Clean up key validation.

* Replace the `filter` RegExp with `validPK()`.
* Consolidate map lookups and type assertions in
  `Handler.RouteHandler()` and `GCMPing.Register()`.
* Remove `proxyNotification()`.
`GCMPing`: Re-use `http.Client` instances.
Add a `CommandType` type.
Send the correct `Content-Type` for JSON replies.
Clean up conditionals.
Worker: Remove unused `wg` field.
Use named struct fields. Add `make vet`.
`RouteHandler()`: Decode payloads into `Routable`.

Remove `Routable.DeviceID`; the device ID is specified in the URL.
Merge pull request #79 from mozilla-services/feature/nits

Miscellaneous nits