History port

I think this is ready for an initial round of reviews.

This ports `history()` from Quantopian to zipline. Most of the code and unittests is copy&pasted with minor modifications. I removed the backfilling logic.

There is one major change: I had to move the call to `initialize()` from `__init__()` to `run()` as the calls to set up the history have to know the date range of the backtest (or the beginning at least) which we only now once a source is passed in.