Let the editor update block automatically

Now we let the block handles its state manually, and let the editor
update the block's data when the user clicks outsie the block.

This is mostly the case that the user tries to access other blocks,
or to add or remove a block. By letting the editor update, block
does not need to expose any function for the parent to call, nor
does it needs to call any callback on its props.

The editor only updates its state when the user finishes typing, so
it won't affect the focus of the block.