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.
Hmm, this doesn't assume an arglist -- I guess that could be a wrapper around this one?  If you want to take a stab, that would be awesome.