RPC happens over single TCP connection per plugin now

This dramatically reduces the number of open file descriptors that Packer uses by multiplexing all of its RPC connections down to a single TCP connection per plugin.  There is quite a lot happening here but the core of it is in muxconn.go and the `MuxConn` structure.

Going to merge this in just wanted a pull-request for historical purposes.