Use Set's .add() return code

In many places a .contains() test was done before attempting to .add(); which is
not needed.

Simplifies the code in quite a few places.
CustomDefaultLabelMatcher: make public
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().