Tests using abstract types

1. Created Abstract Types for Events, MarketData
2. Modified Quote, Trade, and Order to derive from these
3. Broke up MarketData, Orders, and LoadData() into separate modules