Support for TA-Lib transforms

This PR adds support for TA-Lib transforms.

They are used like this:

```python
import zipline.transforms.ta as ta
class Algo(TradingAlgorithm):
    def __init__(self, ...):
        sid = 'XYZ'
        self.close_ma = ta.MA(sid) # MA of closing price with default parameters
        self.high_ma = ta.MA(sid, close='high') # MA of high price with default parameters
        self.vix_ma = ta.MA(sid, close='vix', timeperiod=10) # MA of a data column called 'vix' with timeperiod of 10
 
    def handle_data(data):
        ma_result = self.close_ma.handle_data(data)

```

The `close=*` syntax might look weird at first. The reason for it is that the abstract functions of TA-Lib accept a dictionary with `open`, `high`, `low`, `close` and `volume` keys, and look to specific keys of that dict for data. For example, MA uses whatever data is stored under `close`. By passing an optional argument like `close = 'high'`, the user can instruct my transform to replace the default data of that key with something arbitrary that also exists in the dataframe. So `close='high'` tells Zipline "take whatever data is in the `high` column of my dataframe, and pass it to TA-Lib as the `close` field, because this transform uses `close` as its data source." As another example, the BETA transform uses the data in `high` and `low` as x and y, so users could pass `high='price', low='spx'` to calculate the beta of their sid's price against an arbitrary SPX data column.

The docstrings of the ta.* objects are dynamic and reflect not only the TA-Lib and Zipline docs, but also any available keyword arguments and also the default data dictionary mappings (for example, the fact that MA will use the `close` field to get its 'price' input, or that BETA uses `high` and `low`). So `help(ta.MA)` is your friend here -- or `ta.MA?` for IPython users. 

For example, the top of the MA docstring:
```python
"""
#---- TA-Lib docs

 MA(real[, timeperiod=?, matype=?])

    Moving average (Overlap Studies)

    Inputs:
        real: (any ndarray)
    Parameters:
        timeperiod: 30
        matype: 0 (Simple Moving Average)
    Outputs:
        real
    
#---- Default mapping (TA-Lib : Zipline)

        price : close

#---- Zipline docs

        TA-Lib keyword arguments must be passed at initialization. For
        example, to construct a moving average with timeperiod of 5, pass
        "timeperiod=5" during initialization.
"""
```
and the BETA docstring includes:
```python
"""
#---- Default mapping (TA-Lib : Zipline)

        price0 : high
        price1 : low
"""
```
Many thanks to @mrjbq7, whose work on the python talib made this possible, also @twiecki and @ehebert for invaluable assistance.