Operator Framework (#457)

 - define some operators
 - define a language to work with blocks
 - allow this to create preconditioners