duckpan new update

- These changes were necessary for the new quick start tutorial to work.
- Now the "name" can be a proper package name or filepath ("MyFirstSpice::Moollaza", or "MyFirstSpice/Moollaza") -- this is important so you can create a new Spice under a new or exists namespace, e.g. `Transit::GoTransit`
- If the directories don't exist, they will be created
- Big code cleanup and de-duplication
 - reordered the code, so that if the user is in Longtail or Fathead we stop executing before asking them for input
- Also if you run it in the Fathead or Longtail repo it will gracefully die with an error message explaining they aren't supported

cc// @mwmiller please prioritize this if possible. If it's OKAY, would like to merge and then I'll make any necessary improvements after. This is needed for the new tutorial. Sorry about the rush!

Would love to write some tests for this, but I'm not sure about the best approach. I think I'd need to make a temporary directory and then populate it during the tests? Any thoughts on a testing approach would be helpful!

I'd do the split first and then make sure I have more than one thing in there:

```perl
my @path_parts = split(/::/, $entered_name);
if (scalar @path_parts > 1) {
 ...;
} else {
# Error out on improperly entered name?
}
```

This might help resolve your potential leading/trailing `::` problems. I *think* this happens early enough for that to be the case.