REF: Moved trading-related methods from AlgoProxy.
BUG: Make all iteration related methods fo BarData match __iter__

`for s in data` and methods like `for s in data.keys` were not producing
the same list of active sids

Make the other iteration methods match __iter__ by using the contains
method to check whether or not the sid is active.

For use of data outside of the algoscript context, which needs access
to all data fields use data._data
BUG: Make BarData iterkeys method match dict iterkeys behavior.

Use a generator, instead of creating a list.
PERF: Speed up get_open_and_closes by assigning entire columns

to DataFrame, instead of row by row
MAINT: Removed unused parameter
MAINT: Initialize Portfolio object with default values for attributes

instead of no attributes at all