Removes the child surface after the transition end
Source formatting
Updates surface.show() to only remove previous surface content after transition is fully done

Returns the chained promise instead of only transition promise, this guarantees that consecutive lifecycle only happens after the previous surface content is outside dom
Adds test to should keep surfaces contents until transition is done
Build