submodule: add submodule.<name>.active
This new setting provides an explicit way to mark submodules as active
or inactive. This avoids the previous method of overloading a local
submodule.<name>.url definition (or non-definition) to mean "this
submodule is active (or inactive)".
Implementation details
======================
New functions:
* get_submodule_active: decide if submodule is active based on the
configuration files. Also upgrades from older configurations that
used the presense of submodule.<name>.url as an activation marker.
* module_list_active: wrap module_list to only return active
submodules.
* die_on_module_list_error: replace die_if_unmatched to also catch
other errors (e.g. explicitly listing an inactive submodule for a
command that only processes active submodules).
New arguments:
* get_submodule_config: additional arguments are passed through to
`git config`, which allows get_submodule_active to use --bool
normalization.
Signed-off-by: W. Trevor King <wking@tremily.us>