1. Added the ability to timeout rewriting atoms with rules. This currently only
   works properly single-threaded.
2. Added methods to BasicAtom to get all the variables in a BasicAtom and
   get all instances of a given set of operators in a BasicAtom.
3. Added a cache for rewrites with a binding to the Bindings class. This
   is used in the rewrite with bindings method in Apply to avoid
   duplicating rewrite work.
Merge branch 'master' of https://github.com/elision/elision
When using inc (or read) to load a file, the file is now read relative to the location of the including file.
Merge pull request #103 from Cazra/master

Resolved issue 99
since all processors are expected to have property rewrite_timeout, it was moved to Processor. Also made change in OperatorLibrary to fix this bizarre implicit exec problem
Merge branch 'master' of https://github.com/elision/elision
Changed OpApply getVariables and getOperators to be non-recursive (and
to check for duplicate work) to make them faster.
Made the hash maps used in the memoization cache synchronized to handle the
rare (and hard to duplicate) cases where multiple threads are modifying the
cache in a problematic way.
Used the Scala DynamicVariable class to make timing out of rewrites thread safe.
Lots of changes to support the timing out of rewrting with rules.

The big classes of changes made are:

1. Check to see if rewriting has already timed out in all tryMatch*()
   methods.
2. Check to see if rewriting has already timed out in all rule library/
   rewrite rule methods for rewriting an atom.
3. Due to the rewrite behavior, it is possible for a match iterator to
   come up with matches, but when those matches are then accessed
   rewrting has timed out. The behavior exhibited in this case is that
   the bindings returned by a match iterator can be null. Handling
   for null bindings returned by a match iterator has been added.
4. Getting/setting the subjects/patterns in a Bindings object has been
   made thread safe.
1. Changed the equals() method of AtomSeq to go through a series of
   progressively harder equality checks before finally checking to
   see if the atoms in the 2 sequences are equal.
2. Don't use a synchronized map for the memoization cache. Instead
   only synchronize on the underlying cache when writing to the cache.
3. Only change the scope on the BasicAtom::timeout dynamic variable
   when rewrite timing out is enabled.
4. Make the check for rewrite timing out in BasicAtom faster when
   rewrite timing out is disabled.
5. Use bitsets to identify the enabled rulesets when getting/setting
   values in the memoization set rather than sets of strings.
Right clicking on a node causes the Create Rewrite Rule dialog to show, as if the user selected the node with the Elision->Create Rule from Node menu item.
Merge pull request #104 from Cazra/master

Eva - right-click menu for nodes
1. Added another hash code that is computed for BasicAtoms (called otherHashCode).
2. In AtomSeq::equals(), equality of 2 AtomSeqs is checked by seeing if both sequences
   have the same hashCode and otherHashCode. otherHashCode is computed in a pretty
   different way than hashCode, so the chance of both hashCode and otherHashCode
   being equal for 2 BasicAtoms that are not equal should be very slim.
3. BasicAtoms are now stored in the memoization cache using the pair
   (hashCode, otherHashCode) as the key.
4. Spaces between operator arguments are no longer included in parse strings
   generated by toParseString().
Merge branch 'master' of https://github.com/elision/elision
Make sure that no computations of the value of otherHashCode make use
of a BasicAtom's hashCode value. This is done to help ensure that
otherHashCode will always have different characteristics than hashCode.
Added cut/copy/paste right-click menu to Eva's TextComponents.
Reject a match in the ACMatcher when using ~ to combine match iterators
if the current pattern list is empty and there are still subjects to
match.
Merge https://github.com/elision/elision
Uncommented Elision's actor communications for Eva support.