Allow a commit hash instead of a semver version (#275)

This PR gets us most of the way to #275, with a caveat.

The resolve step will fail if a valid version cannot be found. If the repo has tags then it will get a version like v0.6.8-284-g1031af3 from `git describe` - i.e. the commit is tag `v0.6.8` plus 284 other commits.

If there are no tags in the repo, bower looks for `bower.json` to read a version from there.

A repo with no tags and no bower.json cannot be installed.

With the rewrite on the horizon it doesn't seem worth the effort to make this perfect. Its up to you guys whether or not you want it before then!