Add primitives for vim tag stack implementation.

Adds support for loading tags based on a configuration variable
containing a list of tag files to try, including ./* notation
(vim-specific oddity). Also a tag-stack that operates in the same
behavior as the vim tag stack.
Add Ctrl-] keybinding for tag jump.
Add tag pop, bound to Ctrl-t.
Add :tag ex vim command.

With no argument, jump to next tag in tag stack (unpop). With argument,
jump to tag, pushing the new tag in the correct location on the tag
stack.

Also aliased as :ta (since vim aliases it).
Fix killring operations.

I don't know where the bug was but just using NonEmpty list type makes
sure we never hit it again.
Stick some lenses into Killring while here
s/Funtions/Functions/
Implement M-= (#581)
Implement M-\ (#581)
Move countWordsRegion somewhere better
Remove some uses of partial head
Depend on binary 0.7 on >= GHC 7.8

While this isn’t needed (GHC 7.8 ships with binary 0.7, we indirectly
depend on GHC), it’s more correct and might just prevent future
headache.
Use Proxy in Yi.MiniBuffer
Define action* in Yi.Lexer.Alex using lambdas
Remove pureM from Yi.Core
Add docs to combinators in Yi.Keymap.Keys
Use Mode Binary instance
Use a <$> instead of pure a <*>
Use OverloadedStrings and IsString with Data.Rope
Use convenience operators more and add docs in a few places