Implemented a delayed loading API

* pymaging.image.Image now takes a loader callable instead of a pixel array
* Added pymaging.image.LoadedImage which behaves similar to pymaging.image.Image used to
* Added pymaging.test_utils.pixel_array_factory
* Updated docs and tests

This breaks every single format out there... Sorry about that!