Discussed with karol-bisztyga in chat that the original reason for splitting the images was for layer caching. This resolves the layer caching problem and merges the images.
This also removes the base image from docker-compose.yml, requiring that scripts/build_base_image.sh be run explicitly before docker-compose commands or implicitly using the run and test scripts.
I merged/flattened the directory structures in a way that I like, but this is open to discussion.
Only does this for one service, tunnelbroker, as it is a proof-of-concept in a series of diffs.