Change user, config, and metric store structures to use the new Eventable.extend()
Refactor inherit() utility function out of Extendable.extend() for easier inheritance of things like Error and EventEmitter
Get the different state types working again with the recent changes
Clean up interaction machine's state switching a bit (tests still to come)