Use six.add_metaclass instead of __metaclass__

Python3.x changed the way __metaclass__ are created
and six provides a utility function that can be used
to make both ways work. Lets use it instead.

Change-Id: I7a204dda97c2717c3a4ccf04f2c863efa6a7203b
Merge "Use six.add_metaclass instead of __metaclass__"