Make the tests pass and header demotion work correctly!

Finding the solution took me forever.  The lxml.etree.ParseError was not
shown by the test suite.  I also couldn’t see it  on  manual  demo  site
builds before (it’s now obvious to me why this happened, I did not  have
an empty file that is created by the test suite)  I  had  to  *manually*
run the test case (as in, copy-paste  stuff  from  the  test_integration
module into a .py file and run it) to get the *PROPER*  traceback.   And
then everything became fairly obvious.  But I could’ve been  done  EIGHT
commits and  FIVE  hours  ago.   But  no,  tracebacks  cannot  be  sane.

/rant

cc @ralsina — you may want to look into it and tell me why that happens.

(just in case GitHub goes weird due to the mess I made: close #891)

Signed-off-by: Chris “Kwpolska” Warrick <kwpolska@gmail.com>