Major refactor for rules and bindings.

Adds RuleSet class to World.

The ruleset class holds a collection of rules and operates on a whole.
You call update, act, collide etc on RuleSet and it will update the
given object in the Scene.

The Rule class is the container for a particular rule. A rule can
contain a set of update, collide and act functions.

Bindings are now done through the Apsis::Registry::Action class and
Apsis::Input::Binding class. The Action holds all of the actions and
their bindings.

Apsis::Engine::Input is now the engine for all input. It negotiates with
Registry::Action to figure out what action was pressed.

When an action is pressed, the Scene can figure out which Actor has an
action handler in their RuleSet and fire it. So, now we have
ActFunctions which can be assigned as callback for a Rule when an action
occurs.

All of these objects are now describable in JSON. JSON is loaded for
bindings through the Apsis::Registry::Action::load function.

Also, JSON loading for Thing types will retrieve property values.

TODO:

Rules need to hint at what properties they expect to see and perhaps
default values, ranges, and types for them.

Old rules using inheritance must be adapted for the new scheme. Linux
will not build because the build script is naive and it will try to
compile outdated files currently in flux.