MAINT: Add assertion for incompatible history freq specification. Supplying 1m frequency to history but only providing daily source data resulted in an odd non-descript exception. This adds a specific check and raises a more informative exception.
BLD: Remove numpy 1.8.1 requirement from travis.
MAINT: Test frequency.unit_str instead of frequency string.
TST: Fix history unittest.
BLD: Trying to fix travis.
MAINT: Add custom exception for incompatible history frequency specification.
BLD: Update numpy to 1.8.2
REV: Revert numpy update (back to 1.8.1)

This reverts commit 0eb12156c8e007963029c0faa3d1154902cd873f.
DOC: Add more information to IncompatibleHistoryFrequency message.
MAINT: Adds a tests/utils/ directory and renames test_utils.py
 to utils/test_factory.py
MAINT: Minor tweaks to docstring.
MAINT: In _create_generator only overwrite perf_tracker when it's None.
MAINT: Use filter builtin instead of if-statement and continue.
DOC: Slightly better comment on Frequency._ffill.
DOC: Clarificatory comments in HistoryContainer.
MAINT: Remove unused function in test_rolling_panel.py.
DEV: Overhaul core history logic.

Overhaul the core HistoryContainer logic to be more robust to changing
universes.

Major Changes
-------------
* Remove `return_frame` cache.  The original purpose of using
  return_frames was to avoid having to create new DataFrames on each
  iteration of handle_data, but we ended up having to copy the return
  frames anyway because user code could mutate the frames in place.
  Removing the return_frames reduces unnecessary copying, and reduces
  the logic of `get_history` to just forward-filling and concatenating
  two DataFrames.

* Use a `MultiIndex`ed DataFrame to represent
  `last_known_prior_values`.  This makes lookups faster and greatly
  simplifies the logic of adding and dropping sids.

* HistoryContainer no longer attempts to determine its universe based on
  the contents of its internal buffers.  The TradingAlgorithm
  controlling the container is now responsible for explicitly calling
  `add_sids` or `drop_sids` when securities enter or leave the
  algorithm's universe.  These methods, along with the internal
  `_realign` method, provide a clean interface for changing the universe
  of securities managed by the container.

* Refactor index mutation logic in `RollingPanel` into a
  `MutableIndexRollingPanel` subclass.  Maintenance of the old behavior
  is regrettably necessary to support `BatchTransform`.

* Refactor shared logic from `roll` and `get_history` into a single
  `aggregate_ohlcv_panel` method that's responsible for collapsing an
  OHLCV buffer into a frame.
PERF: Don't apply lambdas to large DataFrames.
PERF: Use numpy functions for concatenation in history.
BUG: Fix numpy dtype casting bug that only manifests in pandas 0.14.0.