Created a 'reward' mechanism

* The Reward class and its derivatives handle handing out a reward, as
well as identifying how likely it should be to earn.  (For example, it
could return a high liklihood on a full moon and zero liklihood any
other time, etc.)

* Tweaked the 'give' call so that you can specify attributes and names
and such as well.
Fixed a problem picking up double digit numbers of items