Add substitute confirm mode.

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

Fixes #675.
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