PokerStars Performance Improvements

Minor improvements - 1%-10% increase
Removing duplicate SplitHandLines

This fix makes the Pokerstars parser get ~+40%h/s
Further Optimization

Improved parsing of cards.
Improved SplitHandLinesPerformance.
Improved PlayerList.AddRange().
HandHistory constructor modified to improve performance analysis.
Improved Pokerstars.ParseLine() performance for chat lines.
Optimizing SeatType & TableTypeDescription + more

General performance improvements:
The SeatType class is now a struct and uses an enum instead of a string
+ int.
SeatType have a new property: isEmpty, it is true if SeatType was
initialized using the default constructor.
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 holecards.
Player also have a new property hasHoldeCards that checks if the player
have holecards.
PlayerList.Add() uses a binary search to insert players in the right
position directly.

PokerStars Optimizations:
Using FastInt.Parse() for ButtonIndex, SeatIndex and maxPlayers.
GameType parsing uses that calculated gameTypeLength instead of the
length of the substring.
Faster Showdown scan.
Moved performance test
Moved the performance testfile
Removed Performance Analysis File
Merge conflict resolved.

Merged with the performance improvements branch.