detect and correctly handle submodule entries

this adds a new property to gitobjects isSubmodule, that serves
alongside the existing isBlob