DEV: Allow test_minute_tracker to run by itself.

TradingEnvironment was not set, so this test could not be
run in isolation.
BUG: Ensure that correct dates are emitted during entire minute rate.

Also, fix double emission of performance results with the last minute.

Change the perf tracker unit tests so that it doesn't rely on an
'extra' event triggering emission.
Unlike daily, minute emission now emits at the end of the bar in
the PerformanceTracker.transform instead of waiting for the next event.
TST: Remove unused trade_delay parameter from transaction_sim method.
TST: Group test trades for transaction simulator by date.

Group by date to prepare for other values to be added per dt.
TEST: Ensure that test_transforms's algos are passed sim_params.
ENH: Send transactions and orders as standalone events.

- Add transaction and order types
- Move TransactionSimulator from trading.py to tradesimulation.py
  (only used by other members of the tradesimulation module)
- Make Transaction an independent event, like dividend
- Add Blotter class.
- Flatten the transaction events to be independent of trade bar events
- Make orders into events that reach performance (need to add
handling)
- Issue IDs to orders and tracking each transaction's order id.
- Make volume share slippage fill orders independently, rather than
  aggregating them into a single transaction.
- Perf tracker holds orders, serializes them with transactions.
- Order state defined and maintained by order class.
- Minutely emission of orders based on last_modified date.
TST: Removes unused members in set up from TestPerformanceTracker.
BUG: Zero out the microsecond attribute of datetimes

wherever we zero out the second attribute.  Otherwise, we can be
off by some microseconds from midnight, etc.
MAINT: Use pd.Series for benchmarks and algorithm returns in risk.

Instead of lists, use pd.Series, so that memory is preallocated.
ENH: Stream benchmark returns as events.

Instead of creating a list of benchmarks in the risk module,
stream benchmarks through the system as events, starting from the
algorithm generator.

Works towards more easily setting arbritrary pricing data as
a a benchmark, as well as working towards live minutely benchmarks.
BUG: Fix environment minute date range start and volume.

The bar timestamps for day start and finish, for NYSE traded stocks,
should be 9:31 AM EST to 4:00 PM EST, for a total of 390 minutes.

Fix starting at 9:30 AM and the creation of 391 bars.
BUG: Perf tracker should emit perf messages only for TRADE events
TST: When comparing dicts, ensure they have the same keys.

dict 'b' might have more keys.
MAINT: Add empty values for risk metric calculated components.

eigen vales, covariance, etc. are not calculated until the first
return is passed through, so initialize this values to None, so that
`repr` and its ilk work on a freshly created `RiskMetricsIterative`
object.
TST: Prevent random integer during unit test from exceeding bounds.
STY: Move import in test to top of file.
TST: Use 9:31 AM EST for first minute of minute performance tests.
BUG: Fix time spent checking equality of floating point numbers.

The use of np.allclose introduced a severe performance penalty,
caused by the creation of two `np.array`s for each check.

Instead create and use a similar check which maintains tolerance
to floating point rounding, but operates only on scalars.
DOC: Fix documentation compilation
BUG: Fix emission of order updates.

The emission of order updates from the blotter were incorrect,
and subsequently, performance.

Previously, only the first action of the order was emitted,
fix so that all status updates are emitted.