Move unitController into game code

An abstract unitController was created in the engine code which handles
many of the common functions of the class.