Add IOptions class for easy options setting

Interactable options are now instances of IOption. IOptions.prototype is
the houses all the default options. The IOptions constructor takes as an
argument that is the the set of options that it is to have.The
properties who's `typeof` matches those of IOptions.prototype's
properties will be given to the new IOption so that options that are not
specified will fall to the defaults of the object's prototype