minor change in serialize for entity

change set to list
minor change to ChangeTracker

get Change.changes dict rather than Change instance
Entity and Change init changes

able to pass in dict to Entity and Change to set initial values
easier to get Changes from Entity tags
adds Trade and TradeExecutor

able to trade resources between entity instances
adds TradeManager
adds trade functionality to simulator
minor convention fix

subject should be first (i.e. after self) argument
adds print current state of entities
adds TagManager class
fix bug with entity processing

previous behavior would be to iterate over each entity, check for changes and
trades then apply them. however, trades may be broken, as requirements may
not be met after updating an entity.

this change will go through each entity, get the changes and trades that apply
to it, and only applies the accumulated changes at the end