WIP: Implement convenience function for submodule update

This is a PR for the work in progress to include a convenience function for submodule update functionality.

The 1st commit is to bring relative URL paths in gitmodules in line with core git. This also enables the pattern I use for testing.

The 2nd commit is to introduce `git_submodule_do_update` function. One place in particular I was looking for thoughts was the `git_submodule_update_options` struct. There are several ways this could be done. Initially, I have chosen to just expose the properties that I think might make sense on this struct. Also, there is already a function named `git_submodule_update` that is a getter for a config setting, which feels out of place with `git_submodule_sync` and `git_submodule_init` - it seems this should be the function for performing a submodule update.

It also seems that there are several functions that are much less useful after the updates to the clone API - in particular `git_submodule_add_setup`, `git_submodule_add_finalize`, and `git_submodule_repo_init`. These set up / finalize a series of steps where you can setup a repository and then clone into it, but the `clone_into` function is no longer exposed. Is there a reason for `git_submodule_add_setup` to exist? or should these be replaced with a more appropriate API for adding a submodule?
Any preference for how we want to name this? `git_submodule_update` is already taken to get the update rule to be used for the submodule. Given we have `git_submodule_init` and `git_submodule_sync` which are functions that perform the corresponding action, it is a bit inconsistent to all of a sudden have a `do_update` function.

//cc @carlosmn @ethomson