Add completely customizable keybinding system with default control schemes.

Add a Set class, which is pretty much a generic version of Shelf with the addition of set operations.