OneOrMoreMatcher: skip test for empty match

The CanMatchEmptyVisitor has already taken care about that.
Make local variables/parameters final where they can be
FollowMatchersVisitor: use an ImmutableList.Builder

Before that, a new list was created and copied, which is a waste.
FollowMatchersVisitor: make the initial context a constructor parameter

Instead of an argument to the .getFollowMatchers() method.
Preliminary version of JoinMatcher
JoinMatcher: some modifications

Matching not written etc.
JoiningRuleBuilder: implement min(), max(), times()
Modify Join{ed,ing}RuleBuilder

Make JoinedRuleBuilder accept a BaseParser as an argument so that it can use its
.toRule().
JoiningRuleBuilder: add .range() method

Takes a Guava Range as an argument. Sanity tests. But not tested yet...
More code for JoiningRuleBuilder, and start tests
Change yet more join code...

One day I'll decide on class names etc! One day...
Make JoinMatcher abstract, specialize cases

There are quite a few of them!
Add class tests for generated JoinMatchers