Add failing whitespace test
Tidy up
Add sanitize and prepare phases to HTML formatting
Rename prepare phase to normalize
Do not rely on order of object properties
Document phases