Change the API so that the buffer is not modified

Instead of returning null-terminated strings, we now return a
pointer to the raw data along with a size. This ensures that the
buffer is never modified, which is a requirement if the memory
has been memory mapped for instance, and which will permit to
implement a "ini_restart" feature later.
Update the Python bindings to match the new API
Make loading INI file from filesystem less prone to errors