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.
BUG: Use context in lieu of "use_environment" decorator

The "use_environment" decorator is too side-effectful (e.g.,
connecting to Yahoo! Finance or another data source) to be used as a
decorator to a function that gets evaluated during module load. This
causes problems, e.g., if Zipline is being used in a gevent
environment, when the trading environment created by the decorator
argument tries to use greenlets when gevent hasn't been fully
initialized.

Since the decorator is nothing more than a context-manager wrapper,
this commit removes the decorator and replaces its use with contexts,
i.e., "with" statements.
BUG: Buy/sell triggers not correct in example. Thanks @FerMartin.
BUG: Fix randomly failing talib unittest that relied on dict order.
STY: Remove unused import from transform tests.
ENH: Remove need to pass sid to TALib transform constructor.

Now that BatchTransforms use RollingPanels under the hood, passing
an sid is no longer needed, passing the data will to handle_data
will suffice.
BUG: Fix TALib example due to parameter changes.

Remove use of `sid` parameter, which was recently removed.