When executing a command, return 0 rather than child.parent.

This fixes an issue where executing a generic node could result in its parent getting
repeatedly pushed onto the view stack, by instead instructing the caller to pop 0
stack elements.
Add {keyboard,controller}_enabled flags to input library

This allows other code to easily and selectively disable event processing entirely for
a given class of input. Needed for Kitten Mode.
Implement Kitten Mode.

This adds a menu accessible via the "menu" event (by default bound to key_enter
and joy_*_button_1). This menu lets you quit emufun or toggle Kitten Mode. The
latter disables all keyboard input, preventing kittens from interfering with your
viewing by flopping on the keyboard.

Closes #17.
Replace Class:new with new "Class", use property tables for Node constructor

Riding the refactor tractor for a bit. Node and all of its subclasses now take a property
table that is shallow-copied into the instance. This makes it easier to create Nodes
with arbitrary properties without needing to keep the instance around and set properties
on it by hand. Some old uses of calling the :new method directly have also been replaced
with calls to the global new() function.
Update .gitignore
Menus should not auto-sort; the order of the menuentries should be determined by the creator.
Add a fullscreen toggle to the menu.

TODO: the menu should be split into its own module, and some classes for commonly used
menu entries like toggles should be created.
Split the menu into its own file.

This puts the menu into an isolated module, mainmenu.lua, and creates a helpful class
for toggle-able settings. This may eventually grow into its own menu/ directory as new
menu settings, such as resolution, are added.
Disable table sorting in View.

This exists primarily to support merged library views, which is not fully implemented
yet and not used anywhere in production. On the flip side, having it in breaks menus.

Merged library views need some rethinking anyways, so this is being disabled.
Replace "Kitten Mode" with separate toggles for controller and keyboard input.

This also adds some safety features: you can't turn controller input on if you have no
controllers connected, and you can't turn either input off if it would leave you with
no way of controlling emufun at all.