Adding rewrite version

After playing around for a while we have a new prototype that uses a
much better design. There are collections of Devices in an Environment,
which has a set of Conditions which are tied together by FactorInfo
(perhaps FactorToken in the future?)

This version 'ticks' through a few iterations of a changing Environment.
With it we should be able to build some fairly accurate (and extreme)
Environments that are affected by enabled Devices.  Next, we'll need to
start implementing some sort of rule engine that can decide when to turn
these devices on and off.