Merge changes from `rhz` and fix pattern builder.
Merg branch 'rhz' and fix resulting PatternBuilder-related issues.
Merge 'rhz' and fix related issues (mostly due to PatternBuilder).
Merge 'rhz' (updated ring model) and fix tests and other minor issues.
Add improved combinator-based version of ABC model test.
Factors out commonalities of {Pattern,Mixture}.Agent into Agents trait.  WIP (some tests don't pass).
More work in progress.  Doesn't compile and has lots of issues.
Yet another attempt at refactoring the commonalities of the various agent classes into a single trait.  This one seems to be working, although it causes quite a lot of compilation warnings (all due to know bugs).
Moves Linked case class from Pattern.Builder companion object back to Pattern.Builder class.  Works but leads to more warinings due to known scalac issue (SI-4440).
WIP: Refactor combinator classes into abstract syntax classes suitable for use by parsers.  Will probably not pass test suite.
WIP: More work on combinator/AST classes.  Operator precedence issues and weird behavior of some tests.
WIP: New abstract classes work as combinators. Need to update models to register rules explicitly and replace obsolete AST classes.
Fix two bugs inverting link orientations (they canceled each other out).
WIP: Update tests.  Snake-model still doesn't pass, commented out rule set.
Refactors parser traits to use abstract syntax classes.