use static declarations in external libraries

All externals need to have their functions and global variables declared as static. Otherwise namespace pollution across translation units will occur.

All externals currently do not.

For simple externals, this can just be a matter of adding the static keyword where necessary. (Excluding the *_setup function, of course.)

For more complex libraries (ones that use their own shared libs, have their own headers, crazy nested makefiles) this will require more caution/testing.