Indexicals now print as $name

Rather than as just their type name (i.e. Prolog.Indexical)
Fixed but in printing GameObject names in Prolog

GameObjects whose names contained spaces printed as “$a b” rather than
“$’a b’”.
Fixed bug with variable restoration

Some primitives called Prove(subgoal).GetEnumerator() directly but
didn’t Dispose() the enumerator afterward, with the result that
variables bound in the subgoal didn’t get restored when backtracking
over the primitive unless the subgoal had been run to completion (i.e.
to failure).  The fix is to wrap the call to Prove().GetEnumerator in a
using.
Cleaned up calls to forall/2 and ignore/1.