Reestablish order when resolving 'extends' for models

Using C3 as resolution order now. Although this is probably overkill,
especially if there are no models with multiple bases, I like to do it
correct from the start. In principle, order matters when merging
dictionaries.

The code is mainly copied from:

http://code.activestate.com/recipes/577748-calculate-the-mro-of-a-class/
Use non version based check for existence of OrderedDict

Version based feature checks are generally unreliable in both
directions.
Use old-style unittest.TestCase.assertRaises for python2.6 support

The python>=2.7 preferred call to this method as a context manager is
not available in python2.6.
Merge pull request #20 from pymad/fix-0722ee8

Looks good to me!

Fix 0722ee8