OdbBackend breaking changes

This PR mainly deals with two issues

 - Prevent Sha regeneration in the OdbBackend. Storing the same GitObject in two different backends should generate two different shas
 - Allow handling of odd-sized short Shas in OdbBackend.