Create a ZEN_REQUIRES_CLAUSE that creates a metafunction of the requires clause
Refactor function builder, avoid name clashes with enable, also improve usage with msvc