Added pickup / upgrade system and changed the way core movement works.

* SceneNode.cs, ARectEntity.cs, Pickup.cs, Pickup.cs,
  PickupUpgrade.cs, AUpgrade.cs, AUpgradeType.cs,
  AUpgradeType.cs, AUpgradeType.cs, SlowDownUpgrade.cs,
  SlowBlocksUpgrade.cs, SlowDownUpgradeType.cs,
  SlowDownUpgradeType.cs, SlowDownUpgradeType.cs, VelocityBoostUpgrade.cs:

  Initial implementation.

* AEntity.cs, Block.cs:
  Converted to use SceneNode.

* BlockSpawner.cs:
  Modied to create upgrades on blocks.

* Player.cs:
  Converted to use ARectEntity.
  Added AllowSlowing boolean for upgrades.

* GameState.cs:
  Cleanup.
  Added pickup handling.

* MenuState.cs:
  Made it so pressing escape while in-game will return you to the game rather than exiting.

* Button.cs, AUIElement.cs:
  Converted to new AEntity implementation.