state/toolstorage: remove old blob on update

If AddTools encounters existing metadata, it
will now attempt to remove the old blob. If
it fails to do so, an error will be logged
but not returned.
state: split toolsmetadata constant from others

Tools metadata does not represent entities in
the system like the other state collections.
Split it off like backups metadata.
Improve test coverage
Remove debugging printf
Merge pull request #710 from axw/state-toolstorage-addtools-remove-old

state/toolstorage: remove old blob on update

If AddTools encounters existing metadata, it will now attempt to remove the
old blob after adding the new one. If it fails to remove the old one, an error
will be logged but not returned.