Updated contracts to support new endpoint schema
Other changes in this version:
 - Changed serialization mechanism to be json.dumps() based (instead of manual)
 - Removed instance_version
 - Type mapping moved to fields on the object to send instead of global mapping dictionary
 - Removed uses of isinstance()
 - Renamed methods, properties and fields to follow python guidelines:
    - single leading _ for privates
    - property and method names use _ separated names instead of camel case
 - Changed track_exception() signature to be sys.exc_info() compatible (see .md file to sample usage)
 - Properly serializing required fields