Several cleanups and fixups.

1) Eval dsl specs on the metaclass of the object, not on the object.
2) Add check for method existence in spec and error if not found.
3) Allow for multiple dsl blocks, to aid abstraction.
4) include_spec can only be used at the top level of spec, not in dsl blocks.