gcc_register_root_tab expects a NULL-terminated list of ggc_root_tab

It appears that gcc_register_root_tab has always expected a NULL-terminated
table of ggc_root_tab, and we were never NULL-terminating this, so it
happened to only ever work by chance.

Found when debugging segfaults seen on ARM in all of tests/plugin/gc
(https://bugzilla.redhat.com/show_bug.cgi?id=864314); upon applying this
patch, all of the tests/plugin/gc go from segfaulting to passing
use -fsigned-char when running selftests
tests/examples/find-global-state: don't report const arrays
tests/examples/find-global-state: clarify the example by renaming variables
tests/examples/find-global-state: report on uses of global state, rather than just decls
don't warn about const structs
document gcc.Variable
fix https://fedorahosted.org/gcc-python-plugin/ticket/50
Ignore exception edges in CFG

Add "eh" and "complex" flags to gcc.Edge

Use them in cpychecker to ignore all exception-handling edges when
"-fexceptions" was set at the command-line.

Ideally we should correctly analyze exception-handling, but for now this
prevents the checker failing with a Python traceback.

Fixes https://fedorahosted.org/gcc-python-plugin/ticket/51
tweak wordking of gcc.Pass.get_roots()