Fixed Round Ending

First, I fixed it so that if there are no PlayerCards left in play (All
Bingos on all cards have been won), then the round will end. While
doing this I realized that if you went onto the next round, the number
of PlayerCards did not reset back to zero. This caused me to rethink
how and where that value should be. Instead of having it be static to
the whole class and having to be reset every time, I changed it so that
it is part of BingoGUI and PlayerCard has reference to BingoGUI now.
This also led me to realize that the same thing was happening with the
currentBingoNumber in NewBingoNotification. So now PlayerCard also has
a reference to the instance of that class to properly set it without
using a static variable. I also changed it so that the Human class
holds the amount of tickets won in the latest round and the value is
reset with Bingo’s close method just like the Computer static
variables. I made it private, however, because the human player is
persistent and should have proper data encapsulation. Additionally, I
moved the Human player initialization to the Shop class because I think
it makes more sense for the shop to create the human before the game
begins and since I may need the human to be instantiated before the
game starts to deal with multiple players. Please test it out to make
sure everything still works the same.