This represents the implementation of a very primitive form of capability
switching.  The main addition is the replaceCap method in the Plan class
which removes a Deed (with the same predicate as a capability) from a Plan
and inserts the capabilities preconditions as achieve goals into the plan.

Of note
* These should, logically, be test goals not achieve goals
* Assumes capability preconditions are only conjunctions of positive GBeliefs.
* Assume the action is an EASS style "perf" action.
* The detection of action failure and the decision to blame a specific
capability and substitute it in a plan are all embedded in the agent program.
* Selection of a relevant substitutable capability is handled by the environment
not a more general mechanism.
In the example, because the agent has already turned through an incorrect angle
the preceeding definition for forward (calculating new coordinates from the old
ones, distance and angle) would not work.  Temporarily changed to target.

It turns out unification/variable renaming isn't working properly when substituting
capabilities.  This will need adaptations to findEquivalent in CapabilityLibrary
(Not yet done).