Changing the Dsl basis to be more general than a basis for specs.

Now the basis can describe other DSLs, not just specs of DSLs.  There
are two entry points: entry, which describes and creates a new DSL entry
method, and spec, which describes an existing method.  The DSL keywords
that overwrite methods (action/dsl_rec/dsl) are only useable from entry.