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