Add toString() for debugging.
Switch to default register after repeated insert

When the lastedit register remains active, CommandBasedMode wraps
repetition commands inside a SwitchRegisterCommand.

Since InsertMode already does that, simply deactivate the lastedit
register when we're done.
Add repetion hint to Insert mode.

Using 'o' or 'O' with a count needs to call the InsertLineCommand
repeatedly. Store this command in a field for later use, rename existing
'command' field for this use.
Allow others to reuse InsertMode repetition logic
New commands for 'o' / 'O' with correct repetition

Repeating these commands or using these with a count introduces some
interesting behavior: a whole block of similar lines will be inserted,
either before or after the cursor but the cursor will always be at the
end of the inserted block.

Simply repeating InsertLineCommand would sometimes introduce an empty
line too many or put the cursor in the wrong spot, so a new command with
correct repetition logic is created here.

Fixes #507.
Only repeat last insertion

Since o / O's repeat has a special case the first time it is run, we
can't just call that repetition. Instead keep repeating the last
insertion.
Add tests for 'o' / 'O' and its 'dot' versions.

Tests for #507.
Add 'dot i' tests with counts.

To check if changes for #507 haven't broken this feature.