Rettigs/refactor

This refactor almost completely rewrites the cookbook, adding lots of new features as well as bugfixes and improvements over the current version.  I just finished doing some basic testing on it and it seems like it should be good enough to use in production, but I'd like to look at this with someone before pushing it just to make sure I didn't leave anything out or overlook anything serious.
you can simplify this entire thing with:

```ruby
begin
  user = databagnode.fetch('rdiff-backup').fetch('client').fetch('user')
rescue
ensure
  user ||= node['rdiff-backup']['client']['user']
end
```

But is there a particular reason this value belongs in a databag instead of being stored as a node attribute?