allow :tag metadata

e.g. ^String -> {:tag String}. we don't use it (yet? :), but if we ever
get "type hinting" to the jit compiler, it will be useful. or if we want
to generate code...
support docstrings and meta in defn
allow specifying deftype fields as symbols
provide deftype fields in fn bodies automatically
use provided deftype fields
support calling "methods" of CustomTypes
pass the custom type to "dot" method calls

the underlying assumption is that you only want to deftype methods "on"
the object itself (and possibly some arguments), not without it. not
sure whether this is idiomatic in clojure, though.
support non-protocol methods in deftype
fix possible endless loop when expanding dot expressions
fix deftype satisfies
implement defrecord
merge branch 'master' into meta-and-deftypes
Merge branch 'meta-and-deftypes' of git://github.com/heyLu/pixie into heyLu-meta-and-deftypes
boost the stack size a bit