Update the nios_system to allow for switch and key interrupts

Added edge capture interrupts for the switches and keys.  This means
that we don't have to continuously poll the memory addresses, we can
just listen for the interrupts.
Update BitOperations to return bool

This was returning an int...A bool makes more sense
Update the CursorController to use new Switch and KeyControllers

The Key and Switch Controllers now use interrupts.  The CursorController
now only reacts when a change has been made to either the keys or the
switches.
Implement use of interrupts for keys

The KeyController now allows a function to be registered as a callback
for whenever an interrupt occurs.  When adding the listener, you can
also specify which keys to listen to.  This is a nice way to set up
reactions to key inputs.
Implement interrupts for switches

The SwitchController used to only allow the reading of the switches
directly.  This now works similar to the KeyController, allowing a
listener to be registered to be called whenever the switches receive a
change.
Pass the KeyController and SwitchController to CursorController

The CursorController now requires references to these two controllers to
function properly.