Made Image class way more modular and object oriented

Could not test it really yet because unit tests are really almost impossible without proper dependency injection...
Sure, fixed in cb4a087baa025c23d2b83ca1cb526c297b1b2e25