Update vendor'd `libcontainer` and update to use new `user` interface.

This patchset transitions the use of the old libcontainer/user interface
to the new and improved libcontainer/user interface (also updating the
hack/vendor.sh script to use libcontainer:4ae31b6ceb2c2557c9f05f42da61b0b808faa5a4).

Signed-off-by: Aleksa Sarai cyphar@cyphar.com (github: cyphar)

/cc @vieux @tianon 

[This is a dup of docker#7591, but my commits won't update when `--force`ing my rebases, so just use this one instead.]
Didn't we have a function for this so the assumption of where this file is didn't have to be hard-coded by users of the API?