Better predicate error handling.

Catch PredicateErrors, check geometries and raise TopologicalError
if warranted.

Closes #203.

Also a few pep8 fixes and improved test coverage.