added defmulti support (default hints for defmethod), alternative to #105

Added `defmulti` support like in #105 but with an alternative implementation based on @w01fe suggestions. Now `defmulti` creates a default validation function in the multifn var metadata and `defmethod` uses it, no central registry needed. When compiling for ClojureScript, the validation function is stored in the `"schemavalidator"` field of the `MultiFn` js object.

Note, in the process of coding this patch, I got bitten by http://dev.clojure.org/jira/browse/CLJ-1446