Initial TH derivation of instruction injection functions

- Adds support for deriving injection functions for instruction-set-like
  GADTs with TemplateHaskell.