Add support for multiple vhosts.

It's quite handy to be able to run multiple instances of smith on the
same machine. This adds support for this by adding the vhost to the pid
filename. You will have to modify .smithrc and reconfigure rabbitmq to
use vhosts.
Update todo list.
Add new gems to gemspec.
Bump version file.
Change directory to / when the agent starts.
Update todo list.
Fix vhost support when vhost = /
Replace Daemonize::daemonize with fork.

Daemonize::daemonize stuffs up the logging.
Fix the --daemon option.
Clean up Pathname related code.

This amounts to adding #expand_path to everything that should probably
have it and cleaning up #glob code.
Change agency_pid to agency_pid_dir in Config.
Log "Shutting down" rather than print it to STDOUT.
Add verbose logging when loading ACLS.
Remove the queue garbage collector.

This is was a misguided idea and caused problems with auto-recovery. So
instead of using random queue names for replies use the queue name with
a suffix of reply. Of course this will fail when there are multiple
clients, but for the timebeing this will have to do.

There is still a channel leak with this implementation because server
side channels don't get closed but it is a comparitively slow leak.
Reorganise requires. I'm sure there's more work to be done here.
Use auto_ack. There's no reason not too.
Add to_s to QueueDefinition and Timeout.
Use the default timeout for on_timeout.
Don't catch exception. I want it to explode!
Add support for message using the old message type header.

This should be removed after a period of time.