Significantly harden the server's API endpoints. Before, a malicious client could trivially crash the server by sending null to pretty much any API endpoint. This branch/commit requires that messages received on the server match a specific format exactly or the message is not processed (an error is reported back to the client). Does NOT harden the client yet, that will be added in some subsequent commit (possibly next). NOTE: Does not handle 'optional' members on messages. This will need to be added eventually, but is not YET needed.
Unfortunately combine 2 things at once. Sorry, but it had to be done.
* Harden the client API endpoints similarly to the server endpoints.
* Fix a bug where map sync was stripping out names and sizes. This was needed because once the client had hardened endpoints, mapsyncs would get dropped.
Sorry, I didn't notice the bug until I had significant changes touching the map sync code already. Stashing would have caused me to have merge hell after, leaving the bug in place would have required comitting untested code, so I basically had to do both at once.
It is now impossible to not send data and rows, so no need to check for them (unless we want to exclude hacked messages with 0. That is reasonable, but we also would want to exclude negatives which the old checks didn't do, so isn't that useful as a ant-hacking measure)
Merge pull request #3 from dylanryan/hardened-api

Hardened API