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
The prior convention was that instead of using Bolt, you had to use BasicBolt if you were to enable AUTO_ACK/AUTO_ANCHOR.  I think it makes sense to keep with that convention and explicitly specify these as ``True``.  For readability, it's nice to see exactly what a Bolt is handling automatically from it's definition.  But I'm open to votes on this.