FF: Selection range may not have startContainer.

* Odd bug this. From the logs, it seems either it's returning a range with no
  startContainer, or the startContainer is not something inheriting from the
  Node prototype (which would be very wrong).
Don't strip styles added by tag rewriters.

* Should preserve font styles on paste.
Preserve background colour on paste.
If can't split block, wrap inlines instead.

When cleaning up <br>s, if it's inside a block we can't split, it's probably a
containing node (like a <blockquote>), so we should wrap the top level inlines
instead.
Always call setSelection after bookmarking.

IE and Safari 5 loses the selection during the bookmarking process, so we must
always explicitly reset the selection after recording an undo state (which adds
a bookmark).