Allow building a Gitpan::Release from a BackPAN::Index::Release object.

This can eliminate a bunch of redundant database lookups.  It also protects
against distributions with releases that have the same version by different
authors.
Split Gitpan::Dist->release into release_from_version and release_from_backpan

This will allow the distribution to list its releases more efficiently
and avoid problems with multiple releases of the same version.
Allow getting releases to import by path, version or BackPAN release.

Also...
* Fuck Type BackPAN::Index::Release->short_path so others can use it.
  Remove it when it's added to BackPAN::Index later.
* Change Gitpan::Git->releases to return CPANID/Filename which is
  more canonical than just a version.
* Make releases_to_import() more efficient by avoiding the
  intermediary step of turning the releases into versions.
update the MANIFEST.
DBIC won't load a schema class that already has a method.

I think that's what's going on.
Allow Gitpan::Releases with no versions.
Load Gitpan::Release early to get the BackPAN::Index::Release fuck typing
Don't try to tag a version which has already been committed.

In the future it may decide which release gets the version based on something
else.  For now it's first come first served.
Decode the whole line from the authors file.

Just in case.
The error can be a Git::Raw::Error object, stringify it.

Git::Raw::Error is in XS and it seems passing it around can cause
memory problems.
Switch to using Git::Raw for committing.  Fix UTF8 in commits.

We have to switch from Perl's internal string format to UTF8.
Merge branch 'issue/75' into rewrite

Solves both the UTF8 error messages and multiple releases with the same version.

For #75 #72 #70