[enh][porc] Add gihp\Branch::getHead()

Add method gihp\Branch::getHead() to get the gihp\Ref\Head reference the
branch uses
[ref][por] Refactor gihp\Repository

Refactor gihp\Repository methods to load and remove branches and tags

 * Refactor Repository::getBranch() to create a new gihp\Branch object on the
   fly. Remove the use of the removed Branch::load() method
 * Refactor Repository::getTag() to create a new gihp\Tag object on the fly.
   Remove the use of the removed Tag::load() method
 * Refactor Repository::removeTag() to use gihp\Tag::getTag() to get the
   gihp\Ref\Tag object to remove instead of creating a new one
 * Refactor Repository::removeBranch() to use gihp\Branch::getHead() to get the
   gihp\Ref\Head object to remove instead of creating a new one