Finished Client/Server model

Many things done for this commit:
- Lots of code cleanup / minor optimizations
- Fixed errors in AI to be compliant with new move model (Grant will
modify later)
- Made a new move model to support different move types