PERF/BUG: Make the portfolio property call `updated_portfolio`.

Make the portfolio property on TradingAlgorithm call `updated_portfolio`
internally.  This prevents needless recomputation of the portfolio between
calls to `handle_data`, and also prevents issues where the portfolio object
could be unexpectedly modified in place in the body of a `handle_data` call.

Noteworthy finding in the course of investigating this bug:

If you modify a Python dictionary while iterating over it, the language will
only throw an exception if the size of the dictionary changes between loop
iterations; this means that you can do:
```
x = {1:1, 2:2, 3:3}
for k in x:
    old_val = x[k]
    del x[k]
    x[f(k)] = old_val
    print k
```
and you'll only get an error if f(k) is already a key in the dictionary.
This can lead to bizarre/nondeterministic behavior in the key iterator.
STY: Remove trailing empty line from requirements file.
BLD: Upgrade requests dependency to 2.3.0

Upgrade requests from 2.2.0 to 2.3.0

To keep up-to-date, Changelog does not appear to have any changes
that would affect our usage one way or the other.
BLD: Upgrade six library to 1.6.1

From 1.5.2 -> 1.6.1

Keep package up to date.
BLD: Upgrade Cython dependency.

Upgrade Cython from 0.20 -> 0.20.1 to keep package up to date.
BLD: Upgrade Logbook to 0.7.0

Keep library up to date.
BLD: Upgrade pytz to 2014.3

Keep library up to date.
BLD: Order scipy install before statsmodels.

statsmodels requires scipy to build, so list the scipy install
before statsmodels so that ordered_pip.sh will install it beforehand.
BLD: Order build of pandas before statsmodels.

pandas is required for statsmodels, so order installs so
that pandas is available for at build time for statsmodels
BLD: Make TA-Lib install compatible with pip >= 1.5

Since TA-Lib's releases are hosted on Github instead of PyPI,
add the `allow-external` and `allow-unverified` flags for just
TA-Lib.

This change means that versions of pip < 1.5 can not be used,
since the flags do not exist in those versions.
ENH: Filter out empty lists from `get_open_orders`.

Filter out empty lists from `get_open_orders` so that we have consistent
behavior between the case where a user has never placed an order and the case
where the user has placed an order but it has been executed or cancelled.

A nice side-effect, which was the impetus for this change, is that you can
check if you have any open orders by doing:

```
len(get_open_orders()) == 0
```

Also adds a test for the behavior of `get_open_orders`, which was previously
lacking.
BLD: Update pyparsing to 2.0.2

2.0.1 -> 2.0.2

pyparsing is a dependency of matplotlib and should not affect
Zipline simulations.
BLD: Remove deprecated pip --use-mirrors flag.

With release 1.5 pip deprecated the --use-mirrors flag,
since that release the flag is a noop and raises a deprecation warning.
ENH: Check for open orders in order_value

Keyword arg, ignore_open_orders, added to the order_value api method.

If ignore_open_orders is False, the order will not be submitted if
there are any open orders for that particular sid.
Open orders are ignored otherwise.

This is to help keep order_value from placing extra, or mis-sized
orders when there are open orders out already.
TST:  TestOrderValueAlgorithm update

One line was added; a duplicate order is placed with ignore_open_orders
explicitly set to False.

The duplicate order should not be placed, and the test is unchanged.
ENH: Added kwargs to api order functions

Added the kwarg ignore_ignore_open_orders to the api order methods to
be forwarded to order_value.

Order target was handled separately because it calls order directly.
ENH: kwarg to include open shares in target orders

ENH: kwarg to include open shares in target orders

Keyword arg ‘include_open_orders’ added to the target order functions.
If True, the shares ordered will subtract out the amount from open
orders.

Order functions with the word ‘target’ in them were separated from the
other order methods. They are routed through order_target, where the
check for open orders takes place.

order_target_value was simplified and routed through order_target.

order_target_percent was also simplified. It’s sent to
order_target_value —> order_target.

The target functions can place extra or incorrect orders when there are
open orders, this should provide some control over that.

This also decouples the target functions logic from the other order
methods.
MAINT: deleted old test