Add slot repo to S4 class git_branch

* R/branch.r (git_branch): Add slot repo to hold the S4 class
  git_repository that contains the branch
Add branch test cases (tests/branch.R)
Add one more branch test case
More argument checks in git2r_branch_list C function
Refactoring of git2r_branch_list C function

* src/git2r_branch.c (git2r_branch_init): Init slots in S4 class
  git_branch

* src/git2r_branch_list.c (git2r_branch_list): Split function and
  initialize S4 class git_branch with git2r_branch_init.
Fix init of S4 class git_branch

* src/git2r_branch.c (git2r_branch_init): Fix duplicate free of
  pointer remote due to not setting remote to NULL after free. Fix
  initialization of slot repo
Add slot branch_type to S4 class git_branch

* Type of the branch, either 1 (local) or 2 (remote)
Rename method is.local to is_local
Update README
Rename method is.head to is_head
Add C function to check S4 class git_branch argument

* src/git2r_error.c/h: (git2r_error_check_branch_arg): Added
Add slot branch_name to S4 class git_branch
Add function to check if branch is pointed at by HEAD.

* src/git2r_branch.c/h (git2r_branch_is_head): Add function

* src/git2r.c: Add git2r_branch_is_head to callMethods

* src/git2r_error.c (git2r_check_branch_arg): Check branch name
Remove slot head from S4 class git_branch

* Instead, use function is_head to check if branch is pointed at by
  head.
Use GIT_OID_HEXSZ for length of hex sha1 in git2r_reference_init
Minor cleanup S4 class git_repository validity function
Drop contains git_reference in S4 class git_branch
Refactor branch is_local method
Add C function to get target of S4 class git_branch
Add method to get target (hex) of S4 class git_branch