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
We state that ``anchors`` should be a list of IDs (not tups), but perhaps better than your idea is:

```python
if anchors is None:
    anchors = self._current_tups if self.AUTO_ANCHOR else []
msg['anchors'] = [a.id if isinstance(a, Tuple) else a for a in anchors]
```

I'll make that change.