Njdupoux/proxy bug fix

Fix for proxy bugs stemming from improper html sanitization

In order to prevent improper html being sent back from the grader and proxy due to lack of escaping of characters such as "&", I've cleaned up the html formatting code to cleanly sanitize the html feedback response received from the grader. This includes proper html escaping. 

I've also written a few units tests to test the sanitization, and added some documentation 
so I'm not sure why we're doing this.  I'd trust the html5lib output to be valid html5.
* `<br>` is a perfectly legitimate tag in html5.  Try inputting
```
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <title>Hello World</title>
    </head>
    <body>
        <h1>Hello World</h1>
        <p>
            I was here.<br>
        </p>
    </body>
</html>
```
into the w3c html5 validator at http://validator.w3.org/check
* double quotes are fine as attribute delimiters.  Why prefer single quotes?
* I can see replacing `\n` with `<br>` if there's a specific case where this improves formatting, but otherwise it seems to be adding styling where none was intended before.

Basically, it's seems a bit counter-intuitive to be using/trusting a library to generate legit HTML5 output, then modifying that output with our own flavors.