Fixing lifetime issues, part 1
Remove all uses of unsafe.

Also make unit tests pass and make abrupt failure a bit nicer.
Making sure offset is not greater than line width.
Removing the Option from Line, since they are no longer instantiated unless they exist.
Merge pull request #39 from pythonesque/remove_unsafe

Remove unsafe
Update docopt version
First pass keymap implementation
Add commands for move-to-line-end/start
Tweak the `Command` enum, add a few Ctrl keys
Rebase, move binding initialization to keymap
Move all key bindings into KeyMap
Ctrl-H should delete to the left, not the right