Add support for unnamed anonymous fn output schema

Not sure if there was a reason for not supporting this, but this extends `sm/fn` to support a schema without an explicit name.
Think this can be simplified to just the first two cases?  

`(if (symbol? (first fn-args)) fn-args (cons (gensym "fn") fn-args)`