DSL and Implicits now traits, added base extractor

morph.ast.DSL and morph.ast.Implicits changed to traits so they can
be mixed in with classes. There are also companion objects so that
the implicit conversions can be imported into scope without mixing
in the trait.

Also fixed comment style.