Add support to elide fn validation at compile time

Adds support to optionally elide function validation from functions generated from schema macros. Previously, the only way to elide fn validation was to use `:never-validate` meta. When the global `*assert*` flag is false, all function validation is elided, except for functions with `:always-validate` meta. Additionally, `schema.macros/*compile-fn-validation*` can be bound to false for same effect.

Resolves #157