Bolt API Refactor

Summary of changes:

**Bolts**:

* All bolt subclasses (including BatchingBolt) support three config parameters: ``AUTO_ACK``, ``AUTO_ANCHOR`` and ``AUTO_FAIL``. Params are fully documented in docstrings.
* BasicBolt/BasicBatchingBolt are now deprecated and should be removed next version
* BasicBolt and BasicBatchingBolt both just have all ``AUTO_*`` set to ``True``

**Unit tests**:

* Added ShellComponentTestCaseMixin which takes care of setUp and tearDown of subproceses for Bolts/Spouts during testing as well as performing initial handshake
* Tests themselves now specify ``COMPONENT`` which points to Python source for bolt or spout and then just the tests they're responsible for leading to just: test_bolt.py, test_batching_bolt.py and test_spout.py
* Added additional test cases that helped to spot a few bugs in Bolt/BatchingBolt

**Docs**:

* Added version info to docs since the API for Bolts is going to be breaking with this so we need to push out docs for 0.0.13 first, then merge this in, do a version bump and update readthedocs once on PyPI
it's outside the changes you made, but would we changes ``self._batch`` to ``self._batches``? Just makes the code a little clearer and it would let this for loop become ``for key, batch in iteritems(self._batches)`` which is a lot clearer.