Function type errors aren't immediately fatal

i.e. function-returning-array, array-of-func and block type errors delay
the exit until fold_had_error is checked.
Updated HACKING to document the new type structures
make check, test target