Class definition mixin now requires explicit extend

See the rather verbose docblocks in this diff for more information.
Additional rationale will be contained in the commits that follow.
Implemented and abstract with mixins properly handled

Classes will now properly be recognized as concrete or abstract when mixing
in any number of traits, optionally in conjunction with interfaces.