Add support for multiple offline contexts.

Offline compression now supports generation for multiple contexts by
providing a list or tuple of dictionaries, or by providing a dotted
string pointing to a generator function.

This makes it easier to generate multiple contexts dynamically for
situations where a user might be able to select or be served a different
theme for a website, etc.