More c++ refactoring

Mostly c++ keywords, and a few casts
In C++, it's not allowable to create an array whose storage space isn't known

In order to make known the size of the array, we need to put the definition
before the uses, so I had to reorder some of the functions.
More c++ stuff

casts, keywords, and some embedded enum problem.
Rename symbols away from c++ keywords
Removed G_BEGIN_DECLS everywhere

It was causing an extern "C" to be added in lots of places
Looks like this is the end

Now the project compiles and links successfully. Unfortunately, the project starts
and stops rather quickly without any errors...
Ensure modules are discoverable through the module system

Perhaps the module system is out-moded? Either way, it works better this way.