Make generic_sh more generic

Also adds some specs for it in a ghettotastic round about way by abusing
specs for Util::EXE