refactor of Deck

Changes
* cleaned up imports
* removed discard and discarded
* added conditions to draw test
* fixed draw to pass test
* changed drawn and undrawn to properties that return tuples
* adding DeckException class

discard() and discarded() were removed to make this class simpler, and
until a proper mechanic for discarding can be worked out.