mir: return proper surface / connection only when valid, without failing
mir: correctly init/clear mutex and use prgname for surface
mir: fix mir surface recreation on resize, bind and update pointers

don't try to read from free'd memory allocation, copy stuff before
deinitializing the old onscreen.

Also, don't try to resize a foreign surface.
mir: don't always allocate when getting the mir surface

Add proper documentation on header file
mir: add renderer event listener support