Update: Redesign f_file and fl_file functions, simplifying f_file_position
Redesign the logic behind the f_file and fl_file functions to favor the buffer->used append strategy.
Remove f_file_read_range(), something similar can be added later if need be.
Povide f_file_reat_until(), that functions similar to f_file_read_at(), except the file position is not automatically set.
Using f_file_reat_until() is more efficient in array loops because it does not check the file position every execution.
Add f_macro_file_seek_data() and f_macro_file_seek_hole() to support the newer seek modes: SEEK_DATA and SEEK_HOLE.
The f_file_position structure is simplified.
The file position should only be for file related code and having buffer in there is just plain wrong.
The structure is further simplified in its property names.