Fix indentation
Pythonic way of deferring to subclasses
Fix shadowing of variable names
What is this, Java?

:trollface:
Merge pull request #292 from alphagov/more-robust-subclassing

Various bits of code cleanup