Blockwise yank and paste operations initial implementation.

- Changed the way model offset is calculated based on visual offset to
  fix issues when the line is not visible.
- Added custom system clipboard content so text blocks can be put there.
- Paste operation supports counter.
- Splitting `<TAB>` characters is not implemented.
- The implementation is quite inefficient.
- Overall design is a bit wacky and probably needs some refactoring.