Replace Namespaces with mixins

Replace the Namespace mechanism that runtimes could use to inject fields
into blocks with one that allows runtimes to dynamically mix in classes
with both fields and methods. This makes the mixed in fields behave more
like fields in regular blocks, and also makes it possible to add methods
to blocks that use those fields.

Also create an Application class that (at the moment) just has a couple
factory methods for creating the blocks with mixins attached.

[LMS-828] [LMS-829]