Had been using incorrect type dict when checking to unwrap function call types.
Merge remote-tracking branch 'origin/master' into v4
Now emitting 'in' operator for maps.  Added a test case for it, and
changed bits of code that the test cases found bugs with.
in operator now supports lists and strings in addition to maps.
Extended support in a slightly inefficient way.  Instead of the
compiler using types inferred from type checking at compile time to
generate code, the runtime actually does a dynamic check for the right
hand side of the in expression (this happens in handle_in_check), and
executes different instructions depending on types.  Left a comment in
the code if ever want to speed this up.
Added tests to ensure that returning tuples from public functions to
non-Waldo code works.  Fixed several bugs along the way.  Most
importantly, there had been an issue with returning a function call.

For example,
Public Function a() returns Number,Number
{
    return 1,2;
}

Public Function b() returns Number,Numer
{
    return a();
}

Used to actually return ((1,2)).  Ie, it would wrap the inner tuple.
To combat this, each time I emit a return statement, I prefix the
return body with _context.flatten_into_single_return_tuple (@see
waldoExecutingEvent.py).  This function unrwaps all inner tuples.  See
the comments in the code of that function for more details.
Before this commit, had not been initializing endpoint global data.
This commit begins initializing endpoint data.  In order to do so, had
to modify get_val interface of waldo references.  Essentially, when
initializing, do not have an active event.  Instead of creating one
and then having to commit it, etc., modified get_val interface to take
in an invalid listener that is None.  In this case, the get_val
interface returns the actual, committed value of the variable (instead
of a copy).  This is safe in initialization, because we can guarantee
no one else touches data.

Also added a test case to ensure that basic initialization of endpoint
and global data worked.
Testing infrastructure caught a minor bug when detecting deadlock.
Essentially, need to request local endpoint to forward message to
partner if backing out.  Had made dumb error so that was trying to
request subscriber id to (which is just an int in the case of a
partner endpoint).