Placate pyflakes and fix tests after fixing issues.

This is mostly just removing dead variables, however, there are a few
substantial changes in here:

 - Move to using try/except ImportError/else in tests where we are
   checking some module existing, as this was hiding genuine bugs
   that manifested themselves as ImportError (the ElementTree treewalker was
   throwing ImportError when being imported).

 - Fixes the ImportError the ElementTree treewalker was throwing (this
   was, too, reported as a bug by pyflakes, thereby showing its
   value).

 - Fixes the assertion then shown in the ElementTree treewalker (this
   is simply a case of it having been missed in the move to Python 3,
   due to the tests not being run).

 - Fixes the ElementTree treewalker with xml.etree.cElementTree under
   2.6, where the ElementTree Comment factory isn't the tag attribute
   on Comment objects (this is effectively the treewalker equivalent
   of 3e50aad85d8113e7).

 - The parser defined the scriptDataDoubleEscapedDashState twice,
   therefore everything that should've been run in this state was in
   fact run in the scriptDataDoubleEscapedDashDashState.

This also adds flake8 to Travis, albeit running it without any PEP 8
errors showing.
(Almost) comply with PEP 8.

The two violations:

 - We don't in general comply with the 79 character per line limit.

 - constants.py violates (at least according to pep8) the hanging
   indent rule. On the whole, I disagree with the tool and have filed
   <https://github.com/jcrocholl/pep8/issues/189> with regards to
   this.
Fix more flake8 issues.

It turns out flake8's behaviour differs between Python 2 and Python 3
because of the changes between the two, so run it on both on Travis.
Remove commented-out code
Move Genshi adapter/test dict out of try block.