Tests: refactor functional tests

Functional tests are now standard test cases.

The test runner is now nose intead of unittest2's built-in
test discovery.

We rely on nosetests package-level fixtures to start
a Vagrant test box and setup the Fabric environment
to target that virtual machine.
Tests: skip functional tests if Vagrant is missing or too old
Tests: make "python setup.py test" install and run tox
Remove Travis CI badge from README

The badge is nice when the README is viewed on GitHub,
but we don't want it on PyPI or ReadTheDocs.

There was a hack in setup.py to remove it when generating
the package metadata, but I feel it's not worth the trouble.
Docs: add a tox target to check that the docs build correctly
Tests: switch to py.test to use its fixtures
Tests: update Travis CI config file to use py.test
Tests: patch Fabric so that it accesses the real stdin

The py.test capture plugin replaces sys.stdin with a fake one.
This is usually good, as well-behaved tests should be unattended
and should not try to read from standard input.

Unfortunately, this causes Fabric to fail when it tries to setup
its input loop, so we monkey patch the real stdin back in.
Tests: make git tests robust to color highlighting config
Tests: add tox to the development requirements
Docs: update testing documentation