Add custom tilesets

In a sense. The tilesets still have to exist on the server, but at least
you get a choice between them.
Use connection hooks to store client data
I have no idea what I'm doing
Clean up header files
Cleanup
New frontend settings, reorganization

all settings are now documented in static/README.md
Merge pull request #20 from Alloyed/spectator

clientside settings, cleanup