Redefinition protection added

Also:
implemented set/getDestination functions that Josh added to the Agent
header. Wouldn't compile otherwise.
Remember that the static functions in steering shoudl be accessed like
"Steering::seek" not "Steering.seek". It will not look like a syntax
error with the dot operator, but won't compile correctly unless you sue
the scope (::) operator.