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
core: Don't try to store metadata if already saved

When storing an item, don't try to call store_metadata() if
there are no keys left to write.

This fixes warnings in grilo-test-ui when trying to create a new
bookmark as all the possible metadata we'd add will already
be handled.

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