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.
Thinking about it more, it might be simpler to extract out `check_package_name()` (i.e. modify `valid_name()` to throw error on failure) and call it from both `setup()` and `create()`. That would also keep the code and text description of the restrictions together.