Next pass on GKbot

Please do all the marked TODO's in the code, (except the ones that requre heading)

Please study the diff between this and the original GK bot so that we can catch these things earlier on.