rename Keychain method to _release()

You shouldn't be calling it directly.  Instead, go through the Claim object
rename test sub to better reflect what it tests
extract function to wait for child process
extract method to release all claims during shutdown
Keychain->shutdown() is now sends a shutdown command to the daemon
require url param in constructor
extract method to set the Claim class name
remove debugguing print
client_read_event() is responsible for dealing with errors when the command didn't dispatch properly

If, say, we tried to release and were unable to send the release request to
the server, then the dispatched release() method should return false, and
within client_read_event(), it'll set the message's return code to failed.

But if we were able to send the release, regardless of the response from the
server, then the dispatched method must return true