Basic Rules Engine

BuldingProductionRule is "done" but untested.  After testing this,
rolling out the rest of the rules should be rather straightforward.