Flat world

> It's widely believed that the world is tree-structured. In fact that's a false belief perpetuated by people who haven't yet seen experienced the enlightenment of having a 260 character limit for windows filenames.

Install dependencies at the highest level possible, instead of in a subdirectory of where they are first needed. This substantially reduces path lengths in the source tree.

Flatten the build directory structure by using add_subdirectory to add sibling directories – we know this is immune from name collisions because module names are globally unique. This substantially reduces the path lengths to intermediate build outputs.