Improved XML and level generation, fixed draw order, weapon ammo, dropping and picking up.

- Improvements to XML manager - Now records the entire transform matrix
of objects on the stage, allowing them to be rotated, scaled and skewed.
- Refactored level generation code - Much more readable and allows new
objects to be added with 1 line of code.
- Fixed draw order of newly created objects - Bullets and Enemies that
spawn after the game is initialised have their draw order set behind the
player.
- Weapons now have ammo that depletes as the player uses them. When a
weapon runs out of ammo, the player will automatically revert to using
the knife.
- When enemies are killed, they will drop their weapon on the player's
"track".
- Weapons can be picked up with the X key. They will disappear after a
short duration.