Add a settings package

This lets us modify the libgit2-wide options/settings.
fix go 1.0 compile error
Added force argument for (*Submodule).Reload() and (*Repository).ReloadAllSubmodules()
add missing walk functions
add conflict functions
Merge pull request #74 from fd/master

Added force argument for (*Submodule).Reload() and (*Repository).ReloadAllSubmodules()
Merge pull request #76 from jezell/walk-enhancements

Add missing walk functions
Adjust to Go tip changes

It does not like breaking aliasing rules, so let's keep a casted pointer
for when libgit2 wants that.
Merge pull request #75 from jezell/add-conflict-to-index

Add index conflict functions
Merge pull request #73 from libgit2/cmn/settings

Add a settings package
rename inmemory to anonymous remote
Merge pull request #77 from jezell/inmemory-to-anon

rename inmemory to anonymous remote
Remote: The whole point of the anonymous change

Was that it would break and we'd remember that the order changed. Oh
well.
Merge remote-tracking branch 'libgit/master' into add-basic-diff-patch