Systematize cases in list-propn-families.

list-propn-families was working in last iteration, but let some cases
e.g. Objs
fall through to the last cond option, map?, and then tried to extract
content from them with :alog1, :alog2, producing nils.  The nils got
squashed out in the final filter step, but not having a systematic
treatment of all cases is bug-prone.  New version revises 1st and 2nd
args of tree-seq to catch cases precisely, and throws exception if
anything falls through.
Add flatten-propn-families.

Flatten-propn-families just maps flatten through a sequence of
family sequences, thereby extracting Obj pairs from argument
vectors, and recursively doing the same to Propn sequences in
argument lists.