Make bootstrap script (re)usable
Make bootstrap script (re)usable

This breaks up bootstrap_transmute() and its inner functions into
re-usable components. It also triggered a closer look at the existing
code, and fixing of multiple... ahem... shortcomings:

  - local (cached) files are assumed to be good;
  - to that end, downloaded packages are given a temporary name and only
    renamed to usable name after the MD5 hash has been verified;
  - MD5 hashing will now check beyond the first 16K -- not that this was
    a concern for transmute itself ;-)
  - locally cached packages are usable, even if no network connection is
    available to "find" their names in PyPI...

All code cleaned up, documentation added and brushed up.

There are now three main purposes for the transmute.bootstrap module: it
can be used stand-alone to bootstrap the transmute package; as well as
to bootstrap independent packages and applications from PyPI; its
functionality is otherwise made available to the rest of the transmute
package.

There is now some overlap between what bootstrap provides and what's in
the rest of the package. This will be cleared in subsequent commits.

comoyo/python-transmute