finished up controller support

This is the final version for the time being, custom button mapping for
the controller isn't there yet!