catch and log all errors, to prevent the server from stopping in some environments

- bad user input is usually the result, eg setting a material on a block in a chunk that doesnt exist
Breaking change - Return a server object instead of just the httpServer
Hotfix - bind `server.listen` to `httpServer`
Feature - returned server is now an event emitter