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
stupid change, but using ``tups`` instead of ``self._current_tups`` is strictly faster as it avoids a dict lookup. then again, it is a bit clearer this way. so, your call, just bringing it to your attention that in a high throughput system little things like that can add up.