Initial commit, from InSynth

Multiple commits from the InSynth repo squashed to arrive at a snapshot.
Snapshot as seen in the InSynth repository when enumerator branch, was
forked.
Attribute grammar construction of streams

- Initial version of attribute grammar construction of streams
- Basic functionality of constructing streams with attribute grammars
- Add new stream AST elements and streams
- Add alternater stream element and appropriate bug fixes
- Alternater now can accept recursive links
Added filtering stream
Added/fixed support for filtering streams
Sorted lists tests and some fixes/refactorings
Tree shapes test case
Refactored class name
Added red black tree structures
Added red black tree generation testcase
Refactoring, some performance concerns
Added enumeration of RBTrees for a given size
Testcases and refactoring

- Red-Black Tree
- finalized ordered tests, which pass
- filterStream memoization by default
Added new loggers
Right way of building streamables from ASTs

In terms of placing memoized streams at joint nodes.
Added memory leakage tests

The memory tests pass for all ordered stream utility classes.
Refactoring and added more memory tests
Added some tests
Added program generation testcase, refactoring
In the meantime, do the dependent types
Add light enumerables

Move from concept of enumerators as streams to concept of bijective
functions.