BUG: DataPanelSource was looping in the incorrect order.
BUG: Fixes error due to floating point rounding in stddev calc.

Adds a check to see if the s_squared value is near 0.

When the number was very near 0, a very small negative floating
point, the sqrt throws a 'math domain error', this prevents that
case.
MAINT: Removed unused prior_day_open from SimulationParameters
ENH: New example algorithm OLMAR.
MAINT: Moved DailyReturn to protocol module to break circular references

and removed code that solved that same problem with conditional imports.
Changes the API for recording variables.

Uses a method called 'record' that provides a key value,
instead of providing keys to extract from context.

The variables are stored internally to the algorithm in a dictionary,
and not just stared as a property of the algorithm.

Main intent behind this change is to make the API more user friendly,
since the previous recorded_variables relies on the value to be set
in the algorithms context/self, the hope is that only having to use
the `record` method means less moving pieces and a more understandable
API.

i.e., instead of:

```
def initialize(self):
    recorded_variables('foo', bar')

def handle_data(self, data):
    self.foo = 1
    self.bar = 2
```

The API is now:

```
def initialize(self):
    pass

def handle_data(self, data):
    self.record(foo=1, bar=2)
```
MAINT: Update pyzmq version in dev requirements
removed data_panel option from BatchTransform.

- the underlying dequeue shouldn't be modified, so forwarding to the
user function is a bit misleading
- if we want to provide a dequeue we should consider another class
or an EventWindow decorator.
MAINT: Adds license to treasuries module.
DEV: Adds a script to test data saved as msgpacks.

The loader_tool currently facilitates:
- Finding the last date in each source
- Forcing a complete reload of benchmark and treasury.
- Manipulating the msgpacks so that trailing dates are dropped,
  so that the condition for an update can be recreated.

This is intended to make it easier to test the update logic added
by @rday in PR #88
refining the batch transform interface:
  - removed use_panel
  - default for refresh_period is now 0
  - refresh_period will only affect the recreation of the datapanel
  - user's transform method is invoked on every call to batch transform
ENH: Update msgpack files if new data is available.
ENH: Improves handling of edge case in data update.

If the trading_days end date is not greater than the date being
tested, (this can happen if the algorithm's end date is set to a date
that is before the latest date available saved in the msgpacks),
then trying to get the location will fail, instead searchsorted
will get the lastest date available in the trading day map to use
as a test date.
added checks for change in optional parameters to trigger transform
recalculation.
added tests to ensure:
    - repeated calls with the same data window do not update batch transform
    windows.
    - repeated calls with the same data and same supplemental parameters do
    not update batch transform results
    - repeated calls with the same data and different supplemental params
    do update batch transform results
ENH: Adjust OHLC when loading bars to remove split/dividend noise

The adjustment is optional so that previous unadjusted values
can be compared to adjusted.
MAINT: Changes unittest use of ndict to use specific objects.

Instead of using ndict, changing over to using the objects that
are created used when an algorithm is run.
incorporating feedback from @richafrank
Merge pull request #101 from quantopian/fix_1516

Fix 1516
README.md: update "Dependencies" section from setup.py