New function `setup()` that works like `create()` but assumes an existing, not necessarily empty, directory

As discussed. `create()` calls `setup()` and now also deletes the created directory upon failure.

Fixes #627.
I think this would be cleaner with a tryCatch:

```R
tryCatch({
  setupPackage(...)
}, error = function(e) {
  unlink(path, recursive = TRUE)
  stop(e)
}
```

or 

```R
withCallingHandlers({
  setupPackage(...)
}, error = function(e) {
  unlink(path, recursive = TRUE)
}
```