Make filters on mutated/undefined vars an error.

Closes PR 14422.
Closes PR 14495.
Make error messages better for function types with bad filters.

Also makes it so filters are not parsed as keyword types.

Closes PR 14492.
Closes PR 14520.
Add code to handle when the test expression is neither true nor false.

Closes PR 14564.