Default apps to open files

- finds available programs for mime types
- saves and restores defaults from json file
- if no default and only one available app, it uses the app
- if there is multiple choices or only apps for any mime available, it
lets the user choose
merged with app-defaults
defaults with for framework