Create include/git2/sys and move backend APIs there

This creates the `include/git2/sys` directory, moves a bunch of functions there, and cherry picks the work that @jwiegley has already started on adding some helpful low-level functions for various types of objects.

- [x] move config backend
- [x] move odb backend
- [x] move refdb backend
- [x] move low-level repository functions
- [x] move low-level commit functions
- [x] move other low-level functions
- [x] check on all major platforms / compilers

I'm not sure that everyone will agree with what I moved and I've left behind, so please take a look at we'll can discuss...