Pokerstars performance improvements

General performance improvements:
The SeatType class is now a struct and uses an enum instead of a string and int.
SeatType have a new property: isEmpty, it is true if SeatType was initialized using the default constructor.
TableTypeDescription is now a struct instead of a class and uses flags instead of a list of enums.
There is a custom coded integer parser "FastInt" for parsing seat numbers and button indexes.
Player.HoldeCards is initialized to null to avoid allocation for players with no hole cards.
Player also have a new property hasHoldCards that checks if the player have any hole cards.
PlayerList.Add() uses a binary search to insert players in the right position directly.
Removed duplicate SplitHandLines().
Improved parsing of cards.

PokerStars Optimizations:
Using FastInt.Parse() for ButtonIndex, SeatIndex and maxPlayers.
GameType parsing uses a calculated gameTypeLength instead of the length of the substring.
Faster Showdown scan.
Improved Pokerstars.ParseLine() performance for chat lines.