[WIP] Implement new local runner on top of subprocess.Popen

This pull request re-implement local runner on top of subprocess.Popen.

Previously we used fabric runner which involved a lot of overhead and unnecessary in-direction.
This is a leftover from the fabric runner. I left the "localhost" key there so it's fully backward compatible and the result looks exactly the same as it did before.

Eventually, we could and probably should get rid of the unnecessary host indirection since there is always only one host / item when running a local action.