Refactor Player class to derive from common base

Both / all players now derive from a common base class, which offers us
neat things like an automated CPU VS CPU or Human VS Human by simply
changing the player(s) initialization to the proper class type.

* Fix incorrect rendering offset of selected card in player's hand by
using our iterator implementation (::previous, ::next, ::set_position)
in CardHand instead of ::selectCard.
Bit of misc code clean up

* CardHand: Remove Free_CardHand function && deprecate ::selectCard.
* CardView: Remove card class var (not used).
Use raw ptr for passing game obj
Fix gradient rendering dims

This corrects the 1px red pixel that bleeds through due to
incorrect dimensions being set.
GameOverState: Fix duplicate card issue

This corrects the selection of cards that use the same ID.
CardHand: Fix bugs that crash game on WindowsOS

Fix #12
Fix #13