title: Metaclass multiple inheritance inconsistency
body: <p>Why is this:</p>
  
  <pre><code>class MyType(type):
      def __init__(cls, name, bases, attrs):
          print 'created', cls
  class MyMixin:
      __metaclass__ = MyType
  class MyList(list, MyMixin): pass
  </code></pre>
  
  <p>okay, and works as expected:</p>
  
  <pre><code>created &lt;class '__main__.MyMixin'&gt;
  created &lt;class '__main__.MyList'&gt;
  </code></pre>
  
  <p>But this:</p>
  
  <pre><code>class MyType(type):
      def __init__(cls, name, bases, attrs):
          print 'created', cls
  class MyMixin:
      __metaclass__ = MyType
  class MyObject(object, MyMixin): pass
  </code></pre>
  
  <p>Is not okay, and blows up thusly?:</p>
  
  <pre><code>created &lt;class '__main__.MyMixin'&gt;
  Traceback (most recent call last):
    File "/tmp/junk.py", line 11, in &lt;module&gt;
      class MyObject(object, MyMixin): pass
  TypeError: Error when calling the metaclass bases
      Cannot create a consistent method resolution
  order (MRO) for bases object, MyMixin
  </code></pre>