DuckPAN: support IA typing more easily.

- Expose a singular hashref with directory and related info.
- Use a more platform independent way of constructing directories.
  Except that IO::All thwarts this.

This could definitely use some cleanup (and probably some actual Type
Objects), but the basic idea is here.
DuckPAN: add `exit_with_msg` method.

Toward better logging, here's a simple routine to print a supplied
message and then exit with the supplied code.
Cmd/New: require that the entered name not be empty.

They can still be jerks and enter invalid things, but maybe we will
notice later.