fix metadata handling in `fn`

In `schema.macros/fn`, merge `&form` metadata into the metadata of `clojure.core/fn`. Added a test.
If it's just used once, prefer to inline over `let`.