Big changes to the camera controllers

Camera controllers now extend the CameraController abstract class
(previously, this was an interface). Concrete controllers then call
super.moveCamera(xOffset, yOffset), vastly simplifying the controller's
code.