Path Shortening and history fix

- Path shortening via elipsis and home substitution via "~"
- Fix for updating the history when the limit is hit (used to get in a regen loop). Logic should be cleaner now.

Currently I limit the path to 51 chars.  We can decide the final limit, and if we want it optional.