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