Use path instead of individually hard coded commands

Hey @fryguy

I understand we used to use the system PATH, but it had too many special cases and code around such a simple lookup. Using an internal PATH (much the way system daemons like cron and ssh do) seemed like a simpler and more resilient approach.

In order to do this, I needed to do some cleanup, so this PR took on a life of its own
@jrefanie, let me know where you want me to split up the code into multiple PRs. As always, the commits represent the different blocks of work I performed.

for @jrafanie It would have been delta -105 lines, but I added 45 lines in new specs