Commiting basic sprite for testing.
Added basic gun/item functionality.

The player sprite now has an instance of a Gun class.  The Gun class has a
SpriteManager instance that handles the updating, drawing, and undrawing of
all of the bullets that it spawns.  The Gun class is drawn when the player
sprite is drawn.  When the player is facing left, the gun will be drawn first,
followed by the player sprite.  When the player is facing to the right the
player is drawn first, then the gun.  This gives a layering effect.
Fixed Gun semiauto mode.
Fixed Auto mode gun functionality.
Added an optional delay to semiauto fire.
Added AmmoManager and AmmoCounter classes and connected them to Player & HUD.

AmmoManager is a simple class used for managing an array of values below a
minimum value.

AmmoCounter is a HUD item that can be used to display the values of an
AmmoManager on the screen.
Tied the Player's held gun to it's ammo manager.

Player class now uses ammo from it's ammo manager when firing it's gun.
Added images for shotgun
Replaced AmmoManager with GunManager class.

GunManager class manages a list of Gun classes with ammo as opposed to two
lists of integers that represent the amunition of each gun.  A separate GunNode
class stores the information for each gun with its ammo so the relationship is
no longer dependant on the two integer lists.
Move ammo managing functionality into Gun class.  Removed Signals module.

Moved ammo management into the Gun class.  Removed GunNode and code in
Player class checked if a gun had enough ammo to fire.  Removed Signals module.
Clamping functions are simple enough to do inline.
Completly removed GunManager class and replaced it with a simple Array.

After moving all of the ammo handling functions to the Gun class, GunManager
did not contain any functionality more sophisticated than a normal Ruby Array.
GunManager class was removed, and replaced with a simple Array attached to the
Player class.  Text formatting for AmmoCounter HUD class moved into the Gun
class as well.  AmmoCounter now works with a simple Array of Gun objects and
calls their to_s() function to retrieve the ammo counts.
Added weapon switching ability to Player class.

When the Player pressed a number key, the gun the player is holding will change
to that of the pressed number key.  Updated base sprite class so that guns will
face the correct direction regardless of what facing they had when they were
last updated by the player class.
Updated Global TODO list
Added functions specifically to call BulletManager update, draw and undraw.
These functions are called from the Player class each frame so that bullets are
drawn even when the gun they are fired from is not.
Added spread angle to Gun class.  Added some utility functions to the Vector
class. Added attribute accessors to the Gun class.