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
* Automatically hotswap in debug mode
* Unpause debugger for runtimes that support it
* Works on both `elm/0.12.3` and `elm/debugger` (the debugger doesn't work unless you're on `elm/debugger`)
* 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

###Bugfixs
* Send 404 HTTP code instead of 200 on File Not Found

###TODO
* Bump minor version?
`/debug/Blah.elm` serves up the debugging interface and the debugger-hooked `Blah.elm`.

`Blah.elm?debug=true` sends the debugger-attached version of `Blah.elm`.

This layout simplifies the code. There's only one function that send html versions of elm back. In addition, url parameters seem to imply that there will only be minor changes to the base website. The debugging interface is a whole new page being sent. It seems like it's enough of a difference to merit a different route. The `debug` parameter only changes one line in the response.

It may be worthwhile to avoid this confusion with a url parameter name change: `Blah.elm?attachDebugger=true`.