Branch entity

This is to resolve #6 

Through this issue some refactoring issues were identified and solved such as lack of ``Commit`` entity/information too.