Parsing tidy/split out and removal of current_scope global
Differentiate between parse-scope and add-to-scope
We can now fold expressions during parse - fixes array types

Before, we couldn't create/compare array sizes (expressions) because
they hadn't been folded. Now we can.
Change restrict_fptr test output
dynmap_get() allows NULL map
Fix indent for -fdump-type-tree
Fix abstract type printing - remove ()
Dump structs/unions/enums in -fdump-type-tree
Moved type_skip_*() to type_is
Move type_str_type() to type.c
Change how qualifiers on types are handled

We now have type-qual-change, and two levels of indirection for this.
Display "nested" if we've incompatible nested pointer types

e.g. char ** vs. const char **
Show flexible array declaration on warning

This is a partial revert of b81fe03bbcfa01759f38c399b8e9c148739bb91c,
which removed it as types didn't have a location.
Test fixes - added RUN line and fixed some undefined behaviour