Exposing file system access by extending Waldo variables and performing writes based on their values.
We distinguish two types of objects during the course of completing a
commit.  The first is a priority object.  We will run complete commit
on all of these before running complete commit on the lower priority
objects.  The reason for distinguishing objects into high and low
priority tiers is that some objects may wrap additional data.  For
instance, a folder map object may wrap many files.  At commit time, we
want to serialize the changes to a variable so that can replay those
changes on the file system.  However, for this to work, we need to
ensure that the folder object is complete_commit-ed before any of the
subfiles are.  (Added separate priority mechanism to schedule complete
commits.)
Added a Waldo extension that makes changes to snmp backends when completing the commit.
Added support for built-in print function during code emit phase.
Changed emit code for print statement for readability.
Merged extensibility branch: should make it easier to subclass waldo types to extend their functionality.
Moved extensible files into appropriate library.
Fixes two problems:

  1) If we have any outstanding events at time that stop is called, we
     want to call stop on them as well.  So, we had iterated through
     all outstanding events in waldoActiveEventMap and called stop on
     each.  However, this could lead to deadlock.  This is because in
     to prevent invalidation while iterating through each element in
     the map, we take a lock on the map.  Similarly, to remove events
     from the map, we take a lock.  Before, we had not used a
     recursive lock.  This could lead to deadlock.  Now, we are using
     a recursive lock.

  2) Each event's stop method required an additional argument:
     whether or not the stop had been initiated by my partner or
     myself.  (If not initiated by partner, then you should forward a
     message to your partner telling partner that you were stopped.
     Otherwise, do not forward.)
Previous code ignored the chance that a backout exception could be raised directly in the call that was made to the internal part of a public method.  This code adds try-catch around internal calls to catch backout exceptions.
Had a bug where was not handling brackets on text objects.
Harrison noticed that his TCP listening queue would start dropping connections when he tried to have very many clients connect to a server at the same time.  This may have been because previous implementation made it so that would only buffer one outstanding connection request at a time.  This commit fixes that so that buffer more than one.  Buffer 5.  See issue #50 on github.
Fixed style consistency for while.
Made timeout integer constant an actual constant.
Removed call to setblocking. Sockets are blocking by default.
removing call to setblocking(1) seemed to cause sequences to stop working correctly, so I am replacing it and investigating why this happened. It is unclear why this is.
Added a test case to stress passing single thread variables in a variety of ways.
Simple .gitignore for emit_tests because I was sick of all the untracked emitted files for runAllTests being shown with using git status.
added support for reserved keywords 'try', 'catch', 'finally', and 'as' in lexer.
removed erroneous whitespace.
added try statement to astLabels.