Use XMLSerializer and DOMParser instead of jquery.

Jquery often changes a file into an html file instead. EPUB wants xhtml.
We need the dom-to-xhtml plugin, otherwise parsererror results after the first edit.
Avoid using "undefined" in head and body of new document.
Handle legacy html entities

For EPUB 3, the content should be html5 compliant xhtml. This means
you can only use amp, lt, gt, quot and apos entities, unless you declare
the dtd in the doctype. This change attempts to parse legacy xhtml and change
it to more compliant html.
Use popover to show parse errors
Colour code the results to show complete, fail, skipped.

Also show status for completed modules in the popover.
Documented the migration framework
Make migration code aware of bookshelve changes.

This basically apply the relevant bits of 4190d2 rebased on a
new master.
Auto-scroll migration log to the bottom, styling.

Skipped modules are now white rather than yellow. More neutral.
Log will auto-scroll so the last module is always visible. It will
however only scroll if the window is at the bottom already, allowing
the user to scroll up without interference.
Indicate when migration is finished.
If contents isn't xhtml, retry as html, and convert.

This will allow legacy ebooks to open, converting the content to
xhtml. Though the change is a few lines, it took a lot of effort to
figure out how to get chrome's XMLSerializer to create actual xml. In
the end, the fix was two lines: Create a new xhtml document, and clone the old
one's contents into it.
Merge branch 'less-less-logging' into better-xhtml-handling-v2
add octokit to gh-book
Added cleanup migration for `<head>undefined</head>`.
Prevent doubling up of `<body>` tag.

Documents with images caused updates to the model, using XMLSerializer.
Unfortunately I serialized the body container along with all the content
causing the body tag to double up.
Merge remote-tracking branch 'origin/master' into fork-improvements-episode1
Document the head migration
Merge pull request #149 from oerpub/better-xhtml-handling-v2

Use XMLSerializer and DOMParser instead of jquery.
Merge pull request #150 from oerpub/migration-improvements-episode1-v2

Migration improvements
Merge pull request #152 from oerpub/undefined-head-migration

Added cleanup migration for `<head>undefined</head>`.