Split out the part of the compositor which makes OpenGL calls
Add a headless null compositor

We also have to disable rendering in headless mode because it uses OpenGL calls
for now.

Fixes #471.
Use headless mode for content tests
Simplify opts.rs