Initial draft for spotlight features

**do not merge**

In particular, spotlight responses should have an ETag.

Need to upgrade ExpressJS to a version that supports strong ETags first.