Make multimethods work as component functions.

This is actually a [bug](http://dev.clojure.org/jira/browse/CLJS-777) in ClojureScript.  In regular Clojure a `MultiFn` is `ifn?`, but in ClojureScript it wasn't.  The bug is fixed in clojure/clojurescript@525154f2a4874cf3b88ac3d5755794de425a94cb but not yet released.

This code can be reverted after Reagent's ClojureScript version is updated.

There are a few more checks whether functions are `ifn?` in src/reagent/impl/component.cljs and src/reagent/impl/template.cljs.  I only changed the ones necessary to get my test passing.  Do you think those others should be changed too?  Let me know and I'll push an update to this branch.