TST: Added tests for market timing rules

Tests were added for the following market timing rules.
AfterOpen
BeforeClose
AtTime
BetweenTimes
market_open
market_close
MAINT: re-ordered arguments in add_event.

Cleaned up the add_event api_method.
MAINT: refactored zipline.utils.events

Updated the EventOffset class, made the argument ordering more
intuitive, and simplified the code.