Initial commit for moving towards a more organized branch object structure. Started here with a BranchMerge object that tracks a merge instead of relying on the less abstract approach of passing the from and to branch merge objects.