branch: Implemented branch functions.
branch: Changed BranchT to BranchType
branch: Variable names don't repeat its type name any longer
branch: Renamed BranchCreate to CreateBranch
branch: Renamed BranchLookup to LookupBrnach
branch:BranchForeach: Correct handling of the ListFlags
branch: Deleted BranchForeach
Merge branch 'branch_functions' of http://github.com/JohannWeging/git2go into merge-add-branch-lookup
cleanup add-branch
Add thread locking
Merge branch 'master' of https://github.com/libgit2/git2go into add-branch-lookup
LastError -> MakeGitError
fix bad git_buf handling
Remove unused consts
fix msg handling to treat empty str as nil
move return outside of switch for go 1.0 / travis
Merge pull request #58 from jezell/add-branch-lookup

Add branch functions
Adjust to checkout_opts -> checkout_options
Remove custom checkout opts init function
Move checkout functions options more in line with the library

Afjust Checkout -> CheckoutHead and pass nil if the options structure is
nil so as not to overide the library's decisions.