DRY check_installed and ensure_installed
Wrap checkout_submodules in a git check and add comments