Alpha Beta Fixed

For the most part Alpha Beta move searching works now. There seem to be one or two edge case bugs left hidden somewhere that can come up and throw exceptions, and I haven't tracked them down yet.  The AI plays a very logical game though for the most part, and can search to a depth of 5 in 30 - 50 seconds.  It's still decently strong at depth 4. It does drop pieces here and there but I'm not sure if that's an Alpha Beta glitch or the horizon effect.

Issues:
-It's possible that some weird side effects could be introduced by the alpha beta search looking for moves when none exist (I.E. checkmate/stalemate), so some research should be done in that area.  For now I've added a check at the end that will set the score variable to an unfavorable value (very positive values for AlphaBetaMin, very negative for AlphaBetaMax) if there are no legal moves.
-Occasional exception gets thrown in the end game when there aren't many moves.  Not sure what causes this.

Not really an issue, but a good next step would be quiesence searching.  Alpha Beta is stopping purely at when it reaches a certain depth, which is conducive to the horizon effect.  Adding quiesence functionality after some refactoring would avoid this.