Backend refactored and minor simplifications

  - Use java style "this" and "super" pointers
  - Call the base struct instance in an inherited struct "super"
  - Removed unneded functions/fields

Signed-off-by: David Oberhollenzer <david.oberhollenzer@tele2.at>
Added memory buffer pixmap implementation

 - Used by WinDOS backend
 - To be used by memory canvas implementation

Signed-off-by: David Oberhollenzer <david.oberhollenzer@tele2.at>
Added memory canvas implementation

 - Reference implementation of the canvas type
 - Draws to a memory buffer
 - Used by the WinDOS backend as default canvas implementation
 - Can be used to render widgets to OpenGL texture

Signed-off-by: David Oberhollenzer <david.oberhollenzer@tele2.at>
Added hack in WinDOS backend to prevent crash on exit

 -> DestroyWindow calls message process somehow
 -> Message process tries to redraw widgets
 -> We just deleted the canvas; it's a dangling pointer
 -> Crash

Temporary solution: Nullify canvas after destroying it

Signed-off-by: David Oberhollenzer <david.oberhollenzer@tele2.at>
Updated README

Signed-off-by: David Oberhollenzer <david.oberhollenzer@tele2.at>