Added ids for waldo and endpoints.  Will help distinguish what objects are already in use.
For each active event sent as a message across network, now also
transmitting additional id fields per transaction.
Added ids for endpoint, waldo, and events and keeping track of which transaction is actually holding onto resource read and write locks.
Changed interface for reserving external variables to also use waldo/endpoint ids and priorities.
Updated reservation manager to return the transaction ids that the reservation request interferes with.
Changed infrastructure for acquiring read/write locks on both external and internal data.  This will allow me to respond to global transaction requests with lists of who is holding on to what variables and with what priorities to handle potential deadlock cases.
Merge remote branch 'github/multi' into multi

Conflicts:
	emitters/v3Emit/uniformHeader.py
	lib/reservationManager.py
When checking for conflicts on local variables, had forgotten to ignore reentrant condition.  Ie, if your event is already holding a lock on the resources, it should not be an error if you continue to hold the lock.
Got to the point where inserting dummy placeholder for run_and_holded version of message (See _emit_run_and_hold of emitEndpoints.py to emit more than placeholder.)  Additionally, need to handle run and hold messages and subscribe for messages on who else requests shared resources.
Intermediate.  Trying to populate run_and_hold-ed function body.  Has a bug.  Also, it's important to create a context too.
Copying over the context to use for run and hold requests.  It has a bug in that we might overwrite sequence variables.
Major restructuring of message receiving code.  Split receiving messages into essentially a switch statement that dispatches to appropriate message handler depending on control type.
Added a good deal of management code to handle chains of run and holders.  Not really exercising it at all yet in this commit.  Just sort of checkpointing it.
Performing a deep copy to remove a fixme.
Merge remote-tracking branch 'origin/multi' into multi
Added Endpoint to type checking and lexing.
Returning values through endpoint run and hold function calls.
change the run and hold responses of everything to include priority, context_id, etc.

when make call for run and hold, take endpoint lock and create a run and hold dict element if it does not already exist.  if it does already exist, then append endpoint to it as one of the things to notify.  that way, ensures that everyone to be notified will be.....also check dict element after creating it to ensure that not in revoked state.

ensure to pass in the newly created run_and_hold_result queue thing in each endpoint

separate event loop for run and hold requests
Stable-ish point where can make a run and hold call and get its result.  But need to actually force commit and write a lot of code for backing out, forwarding reservation request results across the network, etc.
Now at a point where can issue run and hold requests, receive their
return values, and initiate the committing of the chain of run and
holds that the endpoint made.  Still need to actually receive and
process the commit and work out backout scheme.