CustomDefaultLabelMatcher: make public
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.