Miscellaneous nits

* Replace `JsMap`s with structs where possible. These could be consolidated with the `*Packet` structs in the future.
* Clean up client count checks in various `Handler` functions:, and fix a typo in `RealStatusHandler` that caused the handler to report healthy servers as overloaded.
* Consolidate map lookups and type assertions, clean up conditionals, remove the unused `proxyNotification()` function. Clean up conditionals.
* Replace the `filter` RegExp with a `validPK()` function, reducing the number of conversions between strings and byte slices.
* Re-use `http.Client` instances in `GCMPing`.
* Send `Content-Type: application/json` for JSON replies.
This kind of concerns me because in the prior case 'ok' represented whether the key existed, and now its whether they key exists *and* can be typecast to a string. If the key did exist but for some reason couldn't be type-cast, the error should contain enough info to determine that.