Merge branch 'dev' into vars

* dev:
  A large collection of changes!
Remove the special handling for duplicate value names.

The beneficial effects were not as great as hoped.
Merge branch 'vars' into dev

* vars:
  Remove the special handling for duplicate value names.
Return the cursor to it's previous position after writing a line.

The cursor needs to stay in the command line, this helps accomplish that.
There are a few other code formatting changes that do not affect the logic.
Merge branch 'curses' into dev

* curses:
  Return the cursor to it's previous position after writing a line.