Widget Class, generic items in Stack

Extracted Object from Stack class, created Widget class. It will be used
by the Stack, Queue, and Inventory classes. The Stack now uses generic
types. Updated the Stack JUnit tests.