Commit the timeline when removing a layer
undo: Properly make remove layer undoable

And make sure to wait for ASYNC_DONE before commiting timeline
when undoing actions
undo: Always commit the timeline on Clip property change when undoing

Otherwise the timeline won't be updated and the user will not see any
change from the undone/redone action
pipeline: No need to flush pipeline when PLAYING

Flushing is just to make sure that a frame is produced with the new
pipeline configuration, when we are playing we are already sure that
will happen so no need to force that again