Implement copy and paste

* Create PasteVisitor that handles most of the logic
* PasteVisitor can handle offsets
* Implement PasteVisitorTest
* Make some tweaks to constructor parameters
Add cut action
Add paste history item,