More input-related code

This pull request mainly adds support for the Xbox 360 controller. Unfortunately, since I don't have a wired controller, someone else is going to have to test that part of the code.

Also, Context and Pause inputs were added, and a Connected property was added to the adapters. IsButtonDown() and IsButtonUp() methods, which work similarly to the Keyboard.GetState().IsKeyDown() method, are also added.

These are the current bindings for the keyboard and mouse:
* Confirm: Spacebar, Enter
* Back: Escape**
* Context: Right mouse button
* Pause: Pause button, Escape**
* Up: Up arrow or W
* Down: Down arrow or S
* Left: Left arrow or A
* Right: Right arrow or D
* Point: Mouse movement

**This, of course, means that Escape is bound to both Back and Pause, which might be a problem. I think most people want Escape to pause the game as well, though. It's best if MenuScreens check the Back input, while any Screens that contain gameplay check the Pause input. If anyone has a better idea, let me know.

And these are the current bindings for the Xbox 360 controller:
* Confirm: A
* Back: B
* Context: Y
* Pause: Start button
* Up, Down, Left, Right: D-pad or Left analog stick
* Point: not implemented yet

These debug keys are currently hard-coded:
* Restart level: R on the keyboard or X button on the controller
* Change active adapter: Left Control on the keyboard or Back button on the controller

GameplayScreen.cs was also changed a bit to incorporate the new additions, and a bug where the pause menu wasn't being shown is also fixed.

And I think that's it! I write the longest descriptions ever...