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.
yeah, <code>||=</code> is a short cut for

```ruby
user = user ? user : node['rdiff-backup']['client']['user']
```

<code>begin...rescue..ensure</code> is like python's <code>try...catch..finally</code> block. The first gets run, the second is run if an exception is raised, and regardless of what happens, the <code>ensure/finally</code> block gets run.

In this case, we just toss away the exception, so the <code>rescue</code block just needs to catch an exception and do nothing with it. It is nice because you don't need to keep checking if a key exists and has a hash value.