rhbz#1080196: Write unit test for this.

Change-Id: I1c83afa40eaf8c81ca3b436c6fb7d22f7eb9f223
rhbz#1080196: Delete the destination first then paste.

Deleting in-between pasting was causing the block iterators to become
invalid when the deletion took place, which resulted in a segfault.

Also cleaned up the bits about handling filtered rows.  It was using the
old row flag which is empty these days (so it never would have worked).
Plus we do bail out earlier if the destination contains a filtered row.

Change-Id: I78d3ee8bce1647c1c8685f92a3df3c38cc014811