Don't abort on possibly-corrupt submodules

If a submodule's head commit doesn't exist, then we should attempt to update it
rather than aborting the updating process. This commit moves a local `try!` into
a `and_then` closure to prevent returning from the outer function to hopefully
catch more cases where the submodule needs to be updated.

cc #993, but I'm not sure if this fixes it
auto merge of #997 : alexcrichton/cargo/issue-993-attempt, r=brson

If a submodule's head commit doesn't exist, then we should attempt to update it
rather than aborting the updating process. This commit moves a local `try!` into
a `and_then` closure to prevent returning from the outer function to hopefully
catch more cases where the submodule needs to be updated.

cc #993, but I'm not sure if this fixes it
Merge remote-tracking branch 'upstream/master'