Some refactoring preparatory to using the clause system for
start conditions.
When you try to move but don't have enough power, it drains your
power to 0.
This refactor separates the idea of a boolean function factory
(which was previously called a clause manager) from that of a
declarative function executor.  A declarative function executor
takes a function that is declared in yaml (or, presumably, json),
goes through its list of implementations and constructs the
appropriate javascript function, and then executes that function.
The boolean function factory uses that capability to build a
boolean function out of clauses, and to setup callbacks that will
reevaluate that function as appropriate (exactly as the clause
manager did).

Still some work to do.  The next step is to create a separate
declarative function executor which will execute the starting
conditions for a scenario.
Implemented the start state parameter system, and provided parameters
for battery and RAM.  There's still an issue where the UI doesn't
update immediately when I set them, but other than that it looks
good.