Set CLASS:: to array() by default
Pushed Versionnumber
Added context for shortcode atts to enable filtering. Removed bogus alignment of values.
Renamed Sanitize Attributes method.
Renamed get_image() to getImage()
Made the attributes protected and added Getter/Setter Methods
Changed __constructor() to use setter method. Sanitizes attributes before setting it.
Added attribute parsing method. Changed getImage() to use Getter & Parser.
Moved sanitization to build process inside getImage(). Whole code still holds var_dump() statements. These commits aren't meant to be used somewhere aside from local debugging.
Removed extract() to make the code easier to follow with your IDE and easier debuggable. getImage() now uses ['key'] instead.
Removed class='' if no class is entered
Renamed get_attachment() to getAttachment()
Renamed get_markup() to getMarkup()
Renamed getMarkup() to getMarkUp()
Renamed  to short version:
Added Setter/Getter methods for the height width HTML MarkUp string
Moved SQL statement to separate HEREDOC block. Added like escape. Not that it would be necessary, but better be on the safe side. You never know what users are up to.
Encountered that the SQL LIKE was already esacped. Moved the ->prepare() to the GetAttachment SQL method as well.
Abort if 0/zero for the height/width attribute were added. Cores image_make_intermediate_size() in this case returns false. Now the plugin simply returns the original/full size image without the hw MarkUp. Core is stupid. Whoever had the idea of using the same arguments for image size, file name and HTML Markup: Stop developing. Now.