core: Remove unnecessary dispose functions

They were just chaining up.

https://bugzilla.gnome.org/show_bug.cgi?id=726698
core: More guards in public functions

And avoid C99 variable declarations.

https://bugzilla.gnome.org/show_bug.cgi?id=726698
core: Coding style fix

https://bugzilla.gnome.org/show_bug.cgi?id=726698