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 
I'm not sure if a dynamic var is sufficient, since `binding` takes effect at runtime (not compile-time).  Maybe better to have a var storing an atom?  Or maybe I'm just missing how to make the former work well?