Schematized defmulti

Alternative to #105 and #111 with simpler implementation.  Includes reworked tests from @nahuel -- what do you think of this version?  Based on previous PR #118 , so please review that first.