Additional logging, initial wander

Log() overloaded to write any passed object to a seperate log file, use
new constructor to pass a directory, Added a wander state and basic
random wandering, added missing content