Drop Python 2.5 support, use new-style exceptions