Implemented all variants of join and group that don't use folding

Maybe `(every? #{:required} join-types)` ?