restructure into smaller packages; move main up

You can now go get github.com/vito/gocart.

Also make 'Dependency' tinier. Moves the getting-current-version logic into
the fetcher. DependencyFetcher now returns the same dependency it was given
but with the locked-down version that it just fetched.

Included gocart/ as a symlink to the root so previous 'go get's will work (I
think).