BUG: Protect against transactions with an amount less than 1.

If the amount is less than 1, then many more transactions than are
needed are created and then ignored by both the slippage and blotter
code.
MAINT: Make usage of absolute`value more clear in slippage.

Instead of using copysign with a param of 1, use `abs` to make the
code more clear between when slippage is using the absolute value,
and when it is creating an amount that uses the order direction.
MAINT: Return orders alongside transactions from slippage simulate.

So that blotter.process_trade doesn't need to reindex the dictionary of
open orders, yield a tuple of (order, transaction) from simulate.

Also, update corresponding unit tests now that the method returns
a generator instead of a list.
TST: Skip TALib related tests.

The TALib related tests randomly fail, skip for now, as it causes
noise when developing against the latest versions of the codebase.

Should remove skips when TALib is closer to being fully supported.
MAINT: Pass order emitted from slippage up to tradesimulation.

Instead of searching through the open orders to find the ones
that match the current transactions, now that simulate returns
the pair of transaction and order for which that transaction
was created for, that order can be used where we previously
searched for a modified order.

This should be a runtime improvement since, but not yet verified
via thorough profiling.
STY: Use return instead of StopIteration to short circuit blotter gen.

Using `return` is a little more readable alongside the rest of the logic
compared to exposing iterator internals.
ENH: Add check to ensure transactions and orders are aligned.

Raise exceptions when the slippage model returns transactions
that are non-sensical, i.e. those with zero volume, buy transactions
when the order is a sell (and vice-versa), and transactions that are
for a larger amount than the corresponding order.

TODO: After adding a unit test suite that covers just the blotter,
add tests that exercise this logic to that suite.
MAINT: Remove unused NaiveRollingPanel from rolling panel module.
BUG: Do not try to set non-existent items.
ENH: Make RollingPanel update itself if new fields arrive.

Before we preinitialized the BT's fields and sids.
Thus, no new ones could be added after initialization.
This should be fixed now.
ENH: Use smarter matching for updating RollingPanel.
DOC: Add note about performance issue when updating.
Merge changes to RollingPanel that allow new sids to be added mid-run.