Arbitrary properties can be added to track_charge

This patch makes track_charge behave in the same manner as mixpanel's own people_tracker_track_charge: https://github.com/mixpanel/mixpanel-python/blob/master/mixpanel/__init__.py#L194

Note that the test is changed to compare dictionaries rather than the encoded values since ultimately that is what matters and dictionary serialization is arbitrarily ordered.