Refactoring of daemon/* code to support exec and related features

This PR should not affect any existing functionality.

@crosbymichael : As per your request, I have extracted out the refactoring part of #7409 into this PR.


@crosbymichael: The only reason why PID is here is because the type StartCallback in execdriver will now take in a ProcessConfig instead of the entire Container object. 
We can pass that as a separate argument to callback I think. I will make the change in a bit.