Add a possibly correct explanation of RepeatToken
Add repeatable '~' normal mode command
Tests for '~' including two that fail
Almost fix broken tilde tests

There are two bugs remaining, both of which relate to providing tilde with a
count which is longer than the length of the line:

 1. the final character has its case switched (count - length line) times.

 2. the final position recorded for the cursor is (count - length line) too
    great. This doesn't seem to be observable however, insofar as inserting
    characters at the cursors position inserts them at the end of the line.
Move functions to better modules
Factor out common code pattern
Correct test case
Fix ~ behaviour at EOL

Introduce a transformCharactersInLineN function which takes an Int which is
the number of Chars to transform and a function Char -> Char which performs
the transformaton.

As this function uses a StyledRegion, which is defined in
Keymap.Vim2.StyledRegion, this can't be added to Buffer.Misc without
introducing a dependency for Buffer.Misc on Keymap.Vim2.StyledRegion.

Perhaps this is an indication that StyledRegion is sufficiently generic to be
moved somewhere under Buffer
Merge pull request #2 from benarmston/tilde

Normal mode tilde support
Don't expose some internal modules because yi-pango is no longer separate package.
Make rosezipper dependency conditional.
Make ghc-paths dependency conditional.
Remove imports of two operators nobody uses
Make pureMD5 dependency conditional.
Fix some ghc warnings.
Revert "Remove imports of two operators nobody uses"

This reverts commit bad5f6ea6f75c4f5cebc29b346c6e2ad29850f89.

Actually, people use both Yi.Prelude.(%=) and Yi.Config.Simple.(%=)
in configs, so removing one of them breaks yi-contrib.

I suspect that having two similar, but not identical operators with the
same name is not very good.
Merge remote-tracking branch 'ethercrow/vim2'
update my 'working copy' to ethercrow's vim2
Merge pull request #428 from ethercrow/refactoring2

Clean up depends and exposed modules in yi.cabal and fix some ghc warnings.
Wider upper bound for directory package
Widen dependencies for hashable, split, and unix-compat