Merge pull request #195 from Agrar/master

client: Adding IsClosed method to RPCClient.
agent: disallow tags with zero-length key
command: display correct program name in 'serf -help'
Initial work using memberlist keyring
Added basic ability to use a -keyring-file
agent: added keyring writer, might need to move it into Serf since the mechanics are different from a tags file
agent: fixed call to base64 encode (doesn't return errors)
serf: implement WriteKeyringFile in Serf so that we can persist received keys
command: added use-key skeleton
command: use-key is now a functional command, and works with -keyring-file
serf: only write keyring file if it is configured
serf: implement remove-key, consolidate like code
Return failed nodes when performing key operations
serf: log a message when receiving key modify events
command: implement keyring subcommand with multiple commands beneath it
command: Consolidate all key functionality into a single command with arguments
command: better description of keys command and ordered arguments in help message
Return all node errors and display them during key queries
command: exit before connecting to rpc in key command
command: better output during key command failures