makefile: use safe compiler flags

-funsigned-char: makes char unsigned on all architectures (so that isalnum, isspace, etc behave correctly)
-fwrapv: makes signed integer overflow well-defined
-fno-delete-null-pointer-checks: makes null pointer dereference well-defined
-fno-strict-aliasing: do not assume that pointers of different types may not overlap
cppsp: add filename to #line directives

otherwise gcc 4.8 displays incorrect source code lines in error messages
cppsp: minor updates
fbdview: update to new cppsp api