Fixes #116 and #119

#119 - The button will properly honor states now when returning to that state.

#116 - Added enum with several different states that can then be drawn differently for derived classes such as the Button class