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.
Merge pull request #1 from quantopian/master

Merge with Master