Different strategy for JoinTableMatcher

Simply using JoinTableMatcher as a submatcher required a couple of
awkward compromises. Use a more explicit approach to checking for a join
table.