Fix preservation of foreign elements on paragraph merge

This behaviour was working prior to the merge paragraph operation being introduced. A new edge case was introduced related to cleaning up empty spans that caused this to regress.
The majority of these are left behind by things such as issue #37. Most common cases are:

* Splitting a paragraph that has some character-level styling (splits the span into the new paragraph, but can't re-insert the cursor back into the empty span)
* Removing text. If a cursor, or some combinations of elements are still inside the container, sometimes the rules do not correctly collapse the empty span back up
* Direct character styling can incorrectly group text, or potentially not re-use a span that has a cursor inside.

Bella is starting to grow some validation to assist with tracking these down... but for now, they exist unfortunately. The cleanup behaviour for tracking down these spans has lived inside RemoveText for a long time, and was copied into MergeParagraph when this op was split out, as these are appropriate places to craw the node's children during a merge.