remote: add a convenience 'fetch' function.
clone: remove the autotag option

Downloading all tags is part of what makes it a clone instead of
simply a fetch.
clone: implement git_clone on top of git_clone_into

Unify the code bases.
clone: remove more options from basic clone

The basic clone function is there to make it easy to create a "normal"
clone. Remove a bunch of options that are about changing the remote's
configuration.
clone: re-add a way to ignore certificate errors

This used to be done via transport flags, which was removed in a
previous commit.
clone: const-ify checkout options

The removal of many options which lead to the direct usage of the
user's checkout options means we should make sure they remain const.
clone: re-allow using a custom remote name

This is a small thing that by itself doesn't quite justify making the
user use clone_into.
clone: bring back NULL as defaults

This wasremoved as part of the large culling a few commits ago.
clone: mention clone_into in the clone documentation

Make the difference more explicit.
remote: add some comments to the callback struct

Hopefully clear up what they're for.