Make proc_exec much more useful

When told to catch the result of the process, have it return a dict
style array with the raw information from the process. This allows
it to be used as a wrapper around proc_open without any loss of
information returned.

Previously there was no way to access the stderr of the process,
which lead some code to use proc_open and thus lose out on the
logging provided in proc_exec.

Change-Id: I62095d406e1fdefe4c7eaa9f745c0f06803b44c9
Switch linting to use proc_exec

This is better than having them do their own things with proc_open
as it means we get consistent logging of the processes being launched
and any failures they encounter. This was made possible by the plumbing
in b6b56d78188be67, since we need access to the actual exit code and
stderr stream in one case.

Change-Id: I5ebaf30fe426e6959a5bbaf95135dec99d35758f