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
- 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!

Definitely some edge cases here that should be handled, such as malformed names, e.g. "/MyGoodie", "MyGoodie/" or "MyGoodie::"