more work on opponent ai.  now recursive. not random
Put ai in separate thread.  All player types (AI and Human) now return move with same method getMove.  Figured it'd be better to make that standard.
Added CheckedPlayerHuman.java and updated .gitignore