Merge pull request #471 from snoack/metaclass-improvement

Improve with_metaclass()