Optimized CardStack.remove operation

removed calls to Vector<Card>.splice()
Removed loop invariant in toString function
Optimizations + documentation

Reduced the amount of code in some constructors (particularly the
Card.as and Player.as constructors.
Added some documentation to the StatsPanel Class.