parseHTML disregards browser generated omitted start tags

The HTML spec allows for "omitted start tags". These tags are optional
when their intended child is the first thing in the parent tag. For
example, this is a tbody start tag:

```
<table>
  <tbody>
    <tr>
```

The tbody may be omitted, and the browser will accept and render:

```
<table>
  <tr>
```

However, the omitted start tag will still be added to the DOM. We now
test the string and context to see if the browser is about to
perform this cleanup.

http://www.whatwg.org/specs/web-apps/current-work/multipage/syntax.html#optional-tags
describes which tags are omittable. The spec for tbody and colgroup
explains this behavior:

http://www.whatwg.org/specs/web-apps/current-work/multipage/tables.html#the-tbody-element
http://www.whatwg.org/specs/web-apps/current-work/multipage/tables.html#the-colgroup-element

With aid from @bantic. tl;dr the spec will show you the way.