On closer inspection, `null` is even worse, and it wouldn't be consistent with anywhere else in the project where we return handles.

It turns out `git_submodule_lookup` already sets `reference` to an invalid handle for an error-returning - any objection to just returning that regardless of success or failure?