Add visibility flag shell surface

This fixes #554 
I'd do this check above, before you actually got the reference on `self`, so you do not have to `unref` here!