Add a nullfunc_t type for INVALID_FUNCTION.

The typesystem for functags is mostly bunk. This locks it down a bit. INVALID_FUNCTION has been promoted to a first-class feature, and it binds to a nullfunc_t type, which coerces only to functions. Unfortunately I couldn't re-use null since for ABI compatibility it has to be -1, and the compiler is not flexible enough to rewrite this.