Merge branch 'master' into experimental/float

Majority of the conflicts are numeric-vs-intval, and one
expr_skip_casts() for an lvalue-to-rvalue cast in
__builtin_va_start()'s second argument

Conflicts:
	src/cc1/Makefile.dep
	src/cc1/cc1.c
	src/cc1/cc1.h
	src/cc1/data_structs.h
	src/cc1/decl.c
	src/cc1/decl.h
	src/cc1/expr.h
	src/cc1/fold.c
	src/cc1/fold.h
	src/cc1/fold_sym.c
	src/cc1/gen_asm.c
	src/cc1/ops/__builtin_va.c
	src/cc1/ops/expr__Generic.c
	src/cc1/ops/expr_assign.c
	src/cc1/ops/expr_cast.c
	src/cc1/ops/expr_deref.c
	src/cc1/ops/expr_funcall.c
	src/cc1/ops/expr_identifier.c
	src/cc1/ops/expr_op.c
	src/cc1/ops/expr_string.c
	src/cc1/ops/expr_val.c
	src/cc1/ops/stmt_return.c
	src/cc1/out/asm.c
	src/cc1/out/asm.h
	src/cc1/out/impl.h
	src/cc1/out/out.c
	src/cc1/out/x86_64.c
	src/cc1/parse_attr.c
	src/cc1/tree.c
	src/cc1/type_ref_is.c
	src/util/escape.c
	test2/all.sh
No need for a duplicate "mismatching types" message
Function pointers are explicitly convertible
Tenative arrays are allowed in type-checking
Fixed interpreting "unsigned" as signed int
Fixed f(int[static]) / f(NULL) checking

We weren't checking due to a missing size.
__attribute((nonnull)) f(char, int *) doesn't apply to the char
Better checks for where a null-pointer-expr is required
Fixed nonnull test
Fixed array stride/dereference test
Fixed cast/zero-extend test
Fixed addition to short/char using lea
Fixed checking for structs in +=, etc
Fix bitfield scalar-merging code - correct types
Bitfield test fixes
Tidied up __builtin_frame_address() backend
Allow block <-> function pointer conversions
Fixed block test / warning message
Anything can convert to void-type
Some pointer conversions can become implicit or permissive to explicit