function setRangeStart(range, marker) {
      var prevSibling = marker.previousSibling;
      var nextSibling = marker.nextSibling;

      if (prevSibling && prevSibling.nodeType === Node.TEXT_NODE) {
        range.setStart(prevSibling, prevSibling.data.length);
      } else if (nextSibling && nextSibling.nodeType === Node.TEXT_NODE) {
        range.setStart(nextSibling, 0);
      } else {
        range.setStartBefore(marker);
      }
    }
Chrome and Firefox: `Range.insertNode` inserts a bogus text node before
the inserted element when the child element is at the start of a block
element. We just remove it.
FIXME: Document why we need to remove this
As per: http://jsbin.com/sifez/1/edit?js,console,output