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

### Bug fixes
* Send 404 HTTP code instead of 200 on File Not Found

### TODO
* Bump minor version?
I feel like your reasoning is from the perspective of writing the tool, not the person using it. Why would they want to navigate in a directory structure that does not exist?

I can imagine flipping the meaning of these two things because I agree it's nice to separate them. Maybe ask people what they'd expect the path to be or what they'd expect given the path you tell them. If you do this, try not to be prejudicial in your presentation!