Improve submodule error handling

Add error handling for cases where the specified commit doesn't have a
.gitmodules file, or where the .gitmodules file contains a submodule
with an invalid path.
Merge branch 'handle-invalid-submodule' into 'master'

Handle invalid submodule

Add better error handling to the submodule processing in `Gitlab::Git::Repository`:

* Return an empty hash from `#submodules` when the specified commit doesn't have a `.gitmodules` file.

* Omit entries from the return value of `#submodules` when the entry in `.gitmodules` has an invalid path.

Fixes #7, gitlab-org/gitlab-ce#714, and gitlab-org/gitlab-ce#763.  Also fixes one of the recent [comments](https://gitlab.com/gitlab-org/gitlab-ce/issues/333#note_367106) from gitlab-org/gitlab-ce#333.

/cc @jacobvosmaer @dzaporozhets

See merge request !14