Move YiTagsList to a YiConfigVariable.

Was a YiVariable before. Makes it much easier to configure this way.
Add substitute confirm mode.

With y/n/a/q implemented. I'm not even sure I know what the rest do.

Fixes #675.
Collapse outer directory structure.

No real need for two folders now that yi-contrib is gone.

Also delete HACKING, its useless and really out of date. (HackerMain?)
We can completely rewrite a new one if we need to.
Update .travis.yml for no yi/ directory
Add hook for presave.

Inspired by Fuuzetsu's config that deletes trailing spaces before
saving, now without having to completely rebind the save commands (which
is much more difficult in vim).

Example usage:

main :: IO ()
main = yi . flip execState defaultVimConfig $ do
    preSaveHooks <>= [BufferA $ savingPointB deleteTrailingSpaces]
(#647) Expand graphics before wrapping lines.
(#647) Handle line wrapping edge cases Vty's drawText function.
(#647) Decompose `lines'` into smaller functions.

Then apply in order:
 * expand graphics
 * split lines
 * then append spaces on lines that are not 0 modulo window width.

Also, don't special-case the newline character in expandGraphic since different
application order when using it and lines' will avoid expanding newlines.
(MAINT) Remove line break for readability.
(#647) Handle cursor positioning edge cases in SimpleLayout

Signed-off-by: Wayne Warren <waynr@sdf.org>
(#647) Ensure EOF cursor behavior remains the same.
Merge pull request #693 from waynr/gh647

(#647) Fix newline handling in Vty.
Merge branch 'substitute-confirm' of https://github.com/jhance/yi into jhance-substitute-confirm
.ghci
Clear visual mode after exiting Ex mode.

Fixes #661.
Normalize "could not detect encoding" errors.

Previously only showed on Emacs keymap. Now also shows when opening file at
start or when opening with Vim keymap.
Disallow saving garbage.

Requires yi-rope >=0.7.0.0.
Improve unitDelimited