The constructor created output_status_ and seat_status_ without adding any
listener, then handle_show() recreated both (leaking the constructor-created
objects) before destroying status_manager_. Additionally seat_status_ was
never destroyed in ~Tags().
Create these objects lazily (with listeners) only in handle_show(), and
destroy seat_status_ in the destructor.