Multiple new methods (mostly magic)

+ __set() to make protected vars readonly
+ __isset() to check that they exist
+ to_string() to output full HTML <img />
+ __invoke() does similar, but adding <figure> & <figcaption>
+ static create method for creating <img />s with a few limited options
+ Add width & height as public vars
+ as_data_uri() can now force a $type/$mime