Upgrade Logbook to 0.4.2
MAINT: Update TA-Lib to latest release.
DOC: Add some more installation instructions
MAINT: Simplify current date logic in tradesimulation loop.

Now that the tradesimulation loop has changed to use benchmarks
as a 'clock', the logic for setting the current time can be grouped
together at the beginning of each iteration instead of the date
and snapshot grouping.

Also, can remove the snapshot_dt and use simulation_dt instead
of having two variables that were keeping track of the same value.

Also, it is no longer needed to peek into the data to get the first
simulation_dt now that simulation_dt is set at the beginning of each
loop iteration.
MAINT: Remove logging processer from transaction stub.

Now that the tradesimulation transform calls the blotter/slippage
within, instead of being wrapped in a slippage generator, the logging
for slippage can rely on the processor set within the tradesimulation
loop, instead of maintaining its own.
DEV: Make the example chart larger so that it's readable
MAINT: Provide a callable base class for slippage models.

Work towards a set_slippage method accepts a function that takes
event and orders as the argument, instead of being tightly bound
to using classes like FixedSlippage etc., in that scenario the
instances of SlippageModel will be used via `__call__`, so that
backwards compatiblity is maintained.
MAINT: Change slippage guard to check for slippage model base type.

Now that VolumeShareSlippage and FixedSlippage inherit from the same
class, check for `SlippageModel` instead of the inividual classes.
MAINT: Reduce number of parameters for create_transaction.

create_transaction accepted both sid and order, which in all cases
was derived from the current event, so remove `sid` and `order`,
replacing them with event

If there is a scenario where sid and order need to be set independently
of each other, then the underlying Transaction object can be called
directly.

Looking towards making writing custom slippage models slightly easier
by removing the redundancy.
MAINT: Change signature of create_transaction.

- Change the expected type for order information from the string
  of the order id to an `Order` object, so that it matches the same
  abstraction level as passing in an event.
- Change the order (not to be confused with the parameter named `order`)
  of the parameters so that they go from left to right in order of
  static -> dynamic, i.e. the parameters most likely to change within
  each invoration are the amount and price, with amount more likely
  to change than price.
BUG: Extend trading environment's trading days with extra_dates

instead of just limiting it with max_date.  This allows for an
additional "live" day appended to the end, fixing various uses
of the trading_day_map, and replacing the isolated check in
get_next_close.
ENH: Add a convenience property for open amount of a blotter.Order

Found that when implementing different slippage model, needed the
open amount in several places/functions, having the open amount
as a property of an order should help reduce the need for passing that
around and maintaining the value separately.
BUG: Fix early exit from fixed slippage when a order amount is zero.

The order loop should continue, effectively dropping/skipping the zero
amount order, not return early and erroneously skip possible valid
orders.
MAINT: Removed unused member from risk class.

`runonce` is only ever written to, but never used.
MAINT: Remove unused method from TradingEnvironment.

period_trading_days is no longer referenced elsewhere.
MAINT: Remove _period_trading_days member from TradingEnvironment.

Now that the period_trading_days method is removed, the internal
member that cached the value, is also no longer needed.
TST: Include the label in the failure message of isinstance asserts
MAINT: Remove check in slippage model which is always true.

Since `cur_amount` before it's changed by the direction, is always
a positive value, multiplying it back by the direction should also
always be positive.
MAINT: Separate volume and direction while calculating volume share.

In the volume share slippgae, the current amount had the direction,
i.e. buy/sell was baked into the value of `cur_amount` which then
needed to have the direction multiplied out when parts of the slippage
model needed to take in just the magnitude/amount into account.

So calculate the current volume, use that in calculations and then
apply at the order direction at order time.

Also, when applying the direction to the magnitude of the sell,
use copysign to make the code more explicit about taking the direction
of the order, instead of it possibly having some scalar impact.

As well as remove direction from volume_share calculation since that
calculation and subsequent calculations only care about the magnitude,
so make the disregard for direction more explicit by removing it.
MAINT: Factor out order processing from slippage models.

Step towards having a shared simulate method in the base SlippageModel,
which would call a process_order method in each model.