Simplify build upload, improve testing of builds

* Builder: simplify the upload of the build context. Simply stream a tarball instead of multipart upload with 4 intermediary buffers. Simpler, less memory usage, less disk usage, and faster.

* Builder: added a regression test for #895

* Builder: reorganized unit tests for better code reuse, and to test non-empty contexts