implement a new DSL and usage style for Cadenza::Context
breaking changes: see https://gist.github.com/whoward/4948419