(WIP) Add support for eslint and update the code with the new rules

Should this be `"browser": false` (or just omitted)? Does the server serve any client side code?