Dont panic when trying to press Delete on empty line

Fixes #22
do nothing when calling Buffer::join_line_with_previous on the last line

refs #22
Added copy trait to Key - fixes #24
Added upper case Keys

Handling keyboard input needs some further thought. This adds the
missing keys so we support the full keyboard, until a better solution is
proposed.

refs #17, #20
Fix issue calculating index for drawing lines

refs #15
Added note on opening buffers from stdin
Generally improve Unicode support

This changes the editor to represent lines as `String`s. It’s possible that this
will have to change in the future if we want to support reading non-UTF-8 files,
but I think this is a good fix for now at least.

It also changes the represntation of keys to be either a character or a
‘special’ key that doesn’t represent a character. This means that all characters
should now be typable.

Fixes #19.
Fixes #17.