Bug fixes and enhancements.

Package.checksum() has been removed in favour of a more complex, but
better Package.has_checksum(), which handles both usages.

actions._uninstall() now removes all relevant possible internal directories it can remove if they are empty.

validate.identifier() was not successfully converting its 'target'
parameter to a string for performing the validation. This is now fixed,
and identifier validation is working as it should.