Split build process so we can re-use git checkouts.

No reason to use fresh clones every time, especially
in terms of the size of the resulting containers.

Unsure if it's useful to copy source into container
(if result is used for development), we'll see.