Fix duplicate reporting of docstring errors; module docstring checks

This change fixes two problems.

Firstly, if there is an error in the docstring of the class or def
that appears first in the module, the error is reported twice on
the same line.

When checking for 'docstring' related checks, the 'parse_docstring'
method was returning the docstring of the class or def that appears
first in the module, instead of the module's docstring.

Secondly, if the module docstring is invalid, for example the first
line does not end with a period, or is multiline and does not end with
a blank line, errors are not reported.

Fixes #18
Fixes #37

Change-Id: I38582f0369592c5c44db50ea4815f2f44cdedd81
Signed-off-by: David Pursehouse <david.pursehouse@sonymobile.com>
Fixes GreenSteam/pep257#44 to allow summary line to appear on second line.
Merge remote-tracking branch 'upstream/master' into summary-on-second-line
Merge pull request #45 from artloder/summary-on-second-line

Fix to allow summary line on second line
Merge pull request #36 from dpursehouse/duplicate-errors-for-docstrings

Fix duplicate reporting of docstring errors
Add --version option

Implementation shamelessly ripped from the pep8 project.
Merge pull request #52 from marc2982/master

Add --version option
Release to PyPI
Migrating from distutils to setuptools

I'm using `ez_setup.py` in accordance with
http://pythonhosted.org/setuptools/using.html

The `ez_setup.py` was downloaded from here:
http://peak.telecommunity.com/dist/ez_setup.py
`setup.py test` executes `py.test`

Based on [1] I had two different options of going about this:
1. Creating a standalone version of py.test.
2. Using `pytest` as a test requirement.

I chose the latter for multiple reasons:
 * I didn't have to bloat the repository with yet another file.
 * I think it's more logical to set the dependence on `pytest` in
   `setup.py`. This makes it possible for beginners to bump `pytest`
   versions without visiting [1] etc.
 * I think defining test arguments by setting them in `PyTest.test_args`
   makes more sense since we can make sure to run tests in the same kind
   of manner.
 * Calling `python runtests.py` would not have automatically installed
   test dependencies. This could confuse developers.

The test requirements are from my own virtual environment where tests
execute correctly. I can bump them later.

[1] http://pytest.org/latest/goodpractises.html
Adding support for `tox`

This is not part of `python setup.py test` in any way, but makes it
possible to execute all the tests for multiple Python versions.
Travis CI support

Sadly, each Travis CI Python virtual machine does not have multiple
Python versions. Therefor, the versions to be tested need to be defined
both in `tox.ini` and `.travis.yml`.

This fixes #48.