rough in reifier and creator UoW classes
rename *_op_creator(s) to *_op_compilers
refactor PrimitiveOpCompiler to delegate to ast more heavily
implement attribute methods for generated primop classes
Document primitive_op_compiler
implement derived_op_compiler

Refactoring to come, it's basically the same thing as the primop one
Refactor op compiler specs to use shared example group
Refactor Op Compilers to use common parent

I'm a bit nervous about this one, it slightly violates Liskov, because the
derived op compiler will be not 1:1 replacable with a prim op compiler when we
get to the expression-parsing method later, but for the moment, this makes life
easiest (because overriding module methods is a bit tricky).