Added Optional<Card> take() to Deck and added Deck.newShuffledDeck(), closes #67.
Updated unit tests and added some new unit tests.