delete containers during build after every step

This PR changes the way docker build cleans up containers. Containers get cleaned up right away after they've been committed and they've become an image.

When the build fails, only the last container of the failing step is left behind.

This lowers space usage during builds, especially when using the vfs graphdriver. The vfs graphdriver currently uses about 61 MB of disk space until the last step of the "build an image with sixty steps" test from the cli integration tests.

You can find a comparison between how long it takes to run the cli integration tests with this PR and without it below.
with this PR:
real    1m28.783s
user    0m0.161s
sys     0m0.222s

without this PR:
real    1m28.143s
user    0m0.177s
sys     0m0.238s