Addition of sphinx API documentation + a slew of stylistic changes

The serpextract module now has a Sphinx documentation folder (docs) where API docs are easily generated from the doc strings. I suggest you create an account for the project at https://readthedocs.org/ and upload the docs there.

The other commits include mainly stylistic fixes.

On the whole, the codebase looks really good. A formidable first open source Python module -- gets my solid :+1: 

This should merge cleanly. The only semantic change to be aware of is that the couple of places where `urlparse` are used and in which the original code suppressed all exceptions have slightly different behavior. `ValueError` is now suppressed (and logged using `log.debug`), but any other exception type thrown by `urlparse` will pass through. In general, it's bad form for a library to swallow/suppress "all" exceptions -- it can hide more deep-rooted bugs. (Concretely: for this code, it would silently suppress accidentally passing an `int` or `dict` as a "url".) 

I read over `urlparse` code, and it seems `ValueError` is thrown whenever a true malformed URL (e.g. malformed IPV6 addresses) was passed.

These changes should merge cleanly and I don't think any other semantic changes were made.