compositor: implement transient shell surfaces