Fix some issues with creating a buffer from an existing file

Buffers will now correctly inherit the files properties, a value
still needs to be passed in for "format" so there is a default
if the file does not exist.
tests: Add tests for loading .gegl files
tests: Add a test for changing a .gegl file's extent
Don't manipulate BackendFile's header in GeglBuffer

Instead sync the extent using the backend's public API and update
BackendFile's values when the header gets written.
Don’t use BackendFile for the buffer created by gegl_buffer_load

Opening the file with gegl_buffer_open or by passing the constructor
an existing path can be used to create a live file buffer; using
gegl_buffer_load will read the data into a new buffer not associated
with the file.