Make sure to NULL terminate text for unowned buffers

This fixes the case where the stream gets passed in a valid buffer
(i.e. unowned) which we cannot know is null terminated or not.
Updated Hebrew translation

Some of this strings come from gedit he.po.
UndoManager: improve data structure doc
UndoManager: update_can_undo_can_redo() utility function
UndoManager: another batch of code clean-up
UndoManager: start a new implementation (not finished)