Give option on how git tracks submodules.

Fixes https://github.com/ansible/ansible/issues/7030

Allows user to decide if git submodule should track branches/tags or track commit hashes defined in the superproject.

Add track_branches parameter to the git module.

Defaults to track branches behavior.
I understand the pull request author was trying not to break existing behavior.

In my opinion, the default 'right' thing for the recursive option is to do what git does by default, which is **not to use --remote** and (quoting from the manual here) **use the superproject’s recorded SHA-1 to update the submodule**:

From the manual:
```
--remote
           This option is only valid for the update command. Instead of using the superproject’s recorded SHA-1 to update the submodule, use the status of the submodule’s remote-tracking branch. The remote used is branch’s remote
           (branch.<name>.remote), defaulting to origin. The remote branch used defaults to master, but the branch name may be overridden by setting the submodule.<name>.branch option in either .gitmodules or .git/config (with
           .git/config taking precedence).

           This works for any of the supported update procedures (--checkout, --rebase, etc.). The only change is the source of the target SHA-1. For example, submodule update --remote --merge will merge upstream submodule changes
           into the submodules, while submodule update --merge will merge superproject gitlink changes into the submodules.

           In order to ensure a current tracking branch state, update --remote fetches the submodule’s remote repository before calculating the SHA-1. If you don’t want to fetch, you should use submodule update --remote --no-fetch.
```

What should rather be explained (and documented) is why Ansible's git module uses --remote whenever it is detected to be available, in get_submodule_update_params()