layer-shell: Create/destroy layer_subsurface objects on parent map/unmap
Otherwise subsurfaces try to reach their already destroyed parents in their destroy handler, which can happen when the client destroys parent surface without destroying its subsurfaces first.
This mirrors the way subsurfaces are handled in views.
Closes #95 (closed)