Feature: Debugger integration

This is a merge of `elm-debugger` and `elm-server`. Much of the code will appear quite familiar from one repo or the other. There are a few added features to get everything to work correctly.

### Features

* Allows debugger mode and regular display mode (optional `?debug` url parameter)
* Automatically hotswap in debug mode
* Unified elm compile code (`Generator.hs`)
* Bundled assets (`elm-debugger.html`, `debug.png`, and `favicon.ico`)

##### Debug mode overview

0. Server starts watching files in directory for changes (file write or create)
0. Browser initiates websocket connection
0. Server responds with pings every 10 seconds
0. When the server detects a change it compiles the javascript
0. Server sends new javascript
0. Browser evalutates it and replaces the existing elm code

### Notes
* Socket work in a separate file for future extensions
* Works only on `elm/debugger` and any branch with debugger hooks

### Bug fixes
* Send 404 HTTP code instead of 200 on File Not Found

### TODO
* Bump minor version?
* Bump required elm version to guarantee elm will have debugger hooks 
So then as I understand it, line 17 should read: `return (env </> "server" </> name)`.

But how do I specify that this directory should exist in cabal or the environment package?