Fix difference calculation in SubmoduleCombinator

The difference calculation was comparing a String and an ObjectId
and incrementing a counter when they were different.  Siince they are
different objects types, they were always different.

The original intent of the code seems to have been to compare the SHA1
hashes of the items, and if they are different, then increment the
difference counter.

Detected by findbugs.  Now includes a test.