[0.21] * Changed handling of tabs. Instead of having a preprocessing step where tabs are converted to spaces, we now handle tabs directly in the parser. This allows tabs to be retained in code blocks and code spans. This change adds some general language to the effect that, for purposes of determining block structure, tabs are to be treated just like equivalent spaces. * Completely rewrote spec for HTML blocks. The new spec provides better handling of tags like ``, which can be either block or inline level content, better handling of custom tags, and better handling of verbatim contexts like `
`, comments,
    and `