Golog.Interpreter: IO generalized to any Monad m

The modification was minor, just had to add a parameter m to ConfIO and
SyncIO and the IOBAT typeclass. The latter requires use of the
MultiParamTypeClasses extension.

I've left the naming ConfIO, SyncIO etc., because this conveys the idea
best. I don't think a use-case of a Maybe or Either monad makes much
sense. I guess the main alternatives to the IO monad are ST and STM
monads.
TORCS: mostly documentation

Also extended the Golog.Util.HistBAT class a little bit.