duckpan: fail on missing include directory.

Using realpath instead of user-entered string, in order to possibly help
them spot the problem.

Addresses #156.
bin/duckpan: give them the absolute path, if we can't get realpath

I still think the realpath is more useful, but if throws an exception,
just go with absolute.

The absolute is not in a `catch` block, because we lose our `$_`.  If
this was any more complex I would write it a different way.

Also, split out into to sub-tests.
Merge pull request #157 from mwmiller/inclusiveness

duckpan: fail on missing include directory.
DuckPAN: store and parse module list once.

Rather than redownloading a couple (or more) times in a row and
re-parsing, just parse it once per run.

- Eliminates duckpan_packages as an option, but that seemed silly.
- File is mirrored instead of gotten and stored, may make things very
  slightly faster on slow connections.
- File is parsed just once per application run.
DuckPAN: make reinstall do reinstall.

force is much more dangerous, ignoring test results and the whole
ordeal.  This should reinstall if it's possible.
Perl: simplify module version checking.

This makes things slightly easier to follow for the next person.  I
suspect I'll be back here soon and I like my sanity.
Perl: make pinned versions work.

We don't have access to an export which allows us to find previous
distributions, but we can assert a bunch of shaky premises and try to
find it anyway.
Perl: allow pinning for uninstalled packages.

We've always required that we have a local version against which we
compare.  But if it's not installed at all, we'd miss the comparisons
with the pinned version.  So, let's give it a value against which to
compare.

Hopefully that value is silly enough.
DuckPAN: use a more reasonable terminal width for `print_text`.

If we can figure out their width, we might as well use it so we get a
nicer output.

I don't feel comfortable writing cross-platform code to determine when
the width may have changed, so I'll leave that for smarter people.