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.
Merge branch 'master' of https://github.com/Quantopian/zipline
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.
TEST: Remove uncessary `copy` calls from history tests.
Added Gitter badge
Merge pull request #406 from gitter-badger/gitter-badge

DOC Add a Gitter chat badge to README.md
ENH: Adds a new api method `schedule_function`.

schedule_function takes a date rule, a time rule, and a function and
will call the function, passing context and data only when the two rules
fire. This allows for code that is conditional to the datetime of the
algo.

This is implemented internally with `Event` objects which are pairings
of `EventRule`s and callbacks.

handle_data becomes a special event with a rule that always fires. This
makes the logic for handling events more complete and compact.
BUG: Stops the TradingEnvironment from being created at import time when
zipline.utils.events is imported.

Changes the class level attribute `env` on EventRule to a property so
that the environment is only looked up at when needed.
MAINT: Remove use of deprecated getchildren method on xml element

Rather than calling getchildren on xml.etree.ElementTree elements,
we're now supposed to just itegrate over the elements.
BUG: Fixes various bugs with the event manager:

- NotHalfDay only worked at midnight
- week_(start|end) were actually month_(start|end)
- Removes check_args from api.
- Default offset of 30mins for market_(open|close)
add account object to context