settings: use git_buf for returning strings

This survived the last round of culling, as the signature is only in the
comments.
opts: bits are not bytes

The default cache size is 256 megabytes, not megabits as claimed in the
docs.
Merge pull request #2200 from libgit2/cmn/opts-buf

settings: use git_buf for returning strings