Add editing history support.

Memory for history is allocated during init(). Maximum number
of history entries is defined in the header file (LINEEDIT_HISTORY_LEN)
and cannot be changed at runtime. New history entries are appended
to the history when return is pressed. Saved history entries are
recalled using up/down cursor keys. Currently recalled entry is saved
in the lineedit context to allow "browsing" in the history with
cursor keys. Currently edited line is not saved before a previous
history entry is recalled (it is lost).
Change example sources to better see history functionality.