Removed duplicated "cake" code, added settings and post action to Tool.Run
HasSource now uses the standard Tool<T>.Run
Added extra Tool<T>.Run overload which allows to override ProcessSettings
and specifying a Action<IProcess> postAction which if specified is triggered
after process exit.