Begin locking down function types.

As part of the recent type system overhaul, automatic coercion of Functions to non-functions (and vice versa) became a compile-time error. They no longer flow into "any" or variadic lists. However, it's still possible to re-tag functions, for example, `Function:-1` or `_:OnPluginStart`.

This patch deprecates such forced coercions with a warning. This set off some problems in our includes, so I updated them to use `INVALID_FUNCTION` where appropriate.

To get inline functions or lambdas working, we will have to make this a full-stop error. But for now it's okay to test the waters.