Allow docker cp to copy host->container, container->host, container->container

Closes #5846

This allows:

`docker cp <container_id>:/path path`
`docker cp path <container_id>:/path`
`docker cp <container_id>:/path <container2_id>:/path`

With container to container, to keep the code simple (for now?) the content goes through the client's fs.

Needs `API` bump & doc

This one needs a lot of testing @crosbymichael @tiborvass @unclejack @LK4D4 
I think that `docker diff` have not enough info for test. `/foo` can be a dir or can be an empty file.