Use KML 2.2 in test data

See a1b64c78005da7f5c5eecdf9468509c9848c3a14.
Minor PEP-8 fixes
Sort dict variables before output

Stable output is far easier to read, and obviously far easier to test.
Minor typo fixes
Use explicit tuples in comprehensions
Use generator expressions where result is not reused
Fix doubled whitespace in edist distance output
[QA] Use repr(val) in error messages

Tastes change, I used to like the old format and I no longer do.
Fix duplicate test name in test_utils.py
[QA] Use etree over ET as import name

The ET name serves little purpose, and even obscures usage by being non-PEP8 in
my opinion.
Bump copyright years
[QA] Super minor grammar fix
[Tr] Import Image from PIL in Sphinx config
Move all API docs directly under api/
[Tr] Fix reST error in geonames.Location
[Tr] Remove duplicate link refs in docstring
Make XML test comparisons more robust
Move test data to tests/data

The old directory structure is being shifted around.
Enable edist's tests

These were disabled in the original switch due to the stdout usage, but I've
decided to just accept that mock needs to be a dependency.
[QA] Simplify grab_net_sources a little