Use an enum to manage controlType preference

This is instead of storing an object on the `Main` instance. By doing
this, we don't need to worry about references sticking around since it's
not even necessary. This also makes it so that when the `GamePage` is
deleted, our `ControlScheme` disappears as well.