New items, major changes to item code, and more

This is a major update to the code. It has lots of new items and objects
(and liquids!), and makes a lot of changes to the code. Here is the full
list of changes:

- the isEquipped variable is replaced with Inventory.contains(this)
- fixed items "bouncing" when on ground
- platforms now tile properly, with customizable border color and
texture
- a new Timer class that uses delta time (game objects and AI can use
this class to control when different actions are performed)
- separated liquids and platforms from objects
- added lava, bombs and bows (with arrows)
- separated items into different categories (useful for providing custom
functionality for all the different types, like projectiles, explosives,
etc)
- added guns
- started work on a mini nuke launcher
- started work on basic enemy AI

There is more to come, and some of the code still needs work. Stay
tuned!