fix uninstall

uninstall now follows the same process as install to reflect the possible existence of a different shell loader.
Merge remote-tracking branch 'lrascao/fix_uninstall'
undef global variables in run_dfm so tests reflect real world usage
add test for uninstall fix
update changelog