Refactor Recycling

Look at the need for more complex elements to support back-pointers, it
becomes apparent that JumpCommands need to be added/removed in more
precise units. So, since the factory is in charge of adding the command,
it will now also be in charge of removing the command as part of the
recycling.

Also, while testing, a bug was found where a Jump Command did NOT
recycle elements correctly. That has been fixed.

In preparation for reverse pointers, factories can now add a list of
jump locations instead of just a single one.
first revision of reverse pointer visual creation and deconstruction.

The idea is to wrap existing elements and add an additional visual with
the reverse-pointer hat.
Reverse Pointers: Simple Implementation

Added a helper class for backpointers. Added logic to locate a
backpointer list start position. Added logic to wrap elements with a
backpointer.