Better encoding support

Follow the HTML5 guidelines when parsing the title:

1. BOM
2. Content-Type header
3. XML declaration (NOT PART OF HTML5 but, should be here)
4. Meta, charset
5. Meta, http-equiv

Extends the test structure to allow setting custom headers. This is done
with a JSON file named the same as the page but with a .header
extension. Added some tests for all of these except the Content-Type
that was covered in an earlier test.