Give Assembly much better encapsulation and magic dwimmery

Assembler = the monad
Assembly = result of Assembler
Make soundtest take advantage of new magical pseudo-separate-assembly semantics
Likewise with controllertest