gitcherrypick - updates and bug fixes

Use function headers
Change menu layout and user options
Simplify the interface
lib/ui_source - allow empty file string

If user enters an empty string as a file specification, don't try to
verify whether it is a valid file, just return the empty string.