Context

Fixes #8.

Adds a new interface that custom annotations may implement to get a context injected at runtime.
This conditional and the others like it below should be inside the if below them.