Make header file variables private
Move util functions and Error class to new modules
Update .gitignore
Add global_weakrefs dict to keep strings in structs, etc alive