Python JSON encoder and decoder supporting objects, tuples and complex keys.