Refactor and fix table cell editing code

Instead of storing a fragment in the surface and a selection
in the table node, just store a fragment in the table node and
a pointer to the active table node in the surface.

Fix bug triggered when double clicking in already-editing cell.

Change-Id: Ie2f4aea0ca166c9e35d6a56930054c8d8155d257
Support editing of caption nodes

As ce is set to false on the table (as required by Firefox)
override ce back to try on captions and hide focus styling.

Make sure click events get through by never using preventDefault.

Bonus: refactor out event.target to tableCellNode lookup into
getCellNodeFromTarget.

Change-Id: Ie2e0472b473fd8befbd80fbe70bee51577c39ae7
Merge "Refactor and fix table cell editing code"
Merge "Support editing of caption nodes"