Stop doing a line-by-line splicing in applyDelta

Also brings back the functionality where large deltas are split into
smaller deltas so that .splice.apply() calls will work.