Added crafting, rewrote inventory code, and more

- explosions are finished (with knock-back effects)
- added limited ammunition for ranged weapons
- fixed bug where player would hang in air when knock-back effect is applied
- new GUI elements (buttons!)
- improved knock-back behavior
- liquids will now set x velocity to 0 upon falling in
- added metal platforms
- changed sword texture
- improved level background customization
- converted inventory to object arrays (which fixed a ton of bugs and removed a lot of useless dependencies)
- the deleteAllObjects() method now has a parameter to ignore items that are in the inventory
- the default "black" for level backgrounds is now an RBG level of (30, 30, 30)
- cleaned up the Display class and renamed it to Screen to avoid confusion with LWJGL's Display class
- added a dropItem() method to the inventory class, it takes the item as a parameter and removes it from the hotbar
- added a setInventorySize() method (for adding/removing slots)
- selectSlot() and add() now check to make sure you are not selecting or adding to a slot that does not exist
- added a getSelectedItem() to replace Inventory.selectedItem
- added a deleteItem() method to delete the item from the game (and set the slot to null)
- added crafting (so far only one recipe)
- added a crafting table to access the crafting menu
- added a getItemPreview() method to get the image of the item that you are about to craft
- all entities except for the player are deleted when they fall off the screen
- changed object interaction key from E to right mouse button (right click when near the object to activate it)