Working on emitting code for externals.  First change was to add a new
set of waldo variables for external value types.  (These essentially
just wrap the regular Waldo variable value types in much the same way
that WaldoMap and WaldoList wrap InternalMap and InternalList objects.)

Also added emitting for extAssign and extCopy operators.

Also, also added skeleton testing framework to test external value
types.

Things that still need to be tested: do externals interact well with
being passed in as arguments to sequence local data (should just make
copy)?  Can you have externals within reference containers?  (Eg., a
list of external numbers?)
Added external field to variables' type dicts.  No longer using the
.external field for v4 code.  This is so that we can support assigning
and copying into lists and maps that have external elements.  For
example, List(element: External Number).  Breaks compatibility with v2
parsing.

Also, removed tuple external assignment and copy.  Generated multiple
shift/reduce errors if changed parsing to assign/copy to arbitrary
expressions.
Updated emitter so that can assign into a container that holds
external values.  Still must ensure that extAssign works with function
calls and do more testing.