Fixed a bug in handling CPSs with Axioms/Sources and no joinables/predicates/consequences (if there are no "empty" subCPSs, joinedCPSs is empty, if there are empty subCPSs then there is an entry for it in joinedCPSs, but it is empty).  Now checks for the cheap case, then the expensive case before emitting the set of complete results (if there are complete results and at least one partial result with at least one joinable or predicate, throw an exception).
Made the affore-created exception more explanatory.