Fix bug in insert_characters and other Line methods.

insert_characters was always deleting chars at the end of the line, even
if, due to lazy character rendering, the line had not reached its full size
yet. This was resulting in magically disappearing characters on the
commandline, but only in cases where readline uses the insert-characters
escape code (which it does when the current line contains spaces!).

Also switch to using list splicing, splicing assignments and list
construction by multiplication instead of loops and ranges. IMHO this is
more readable (by being declarative) and maybe even faster.

Use the data attribute instead of using the Line as a list with self to
reduce indirection.