Think deeper
Think quicker

Not using std::function<> in getMoves() turns out to be a lot quicker!
Add alpha beta pruning
Incremental depth

Somehow destroys good thinking. But I think its due to a bad
evaluation function...