add tracker schemas to unpack uploads from iOS apps

Added tracker schemas for the different data types we're getting back from the iOS apps. We only look at the top-level keys. For any JSON blobs or for survey answers (which can be of any time), we use the empty schema, which allows any type and value.

Testing:
* created unit tests to test schema validation
* added all 5 trackers to "api" study on my local dev instance. Called /api/v1/trackers and /api/v1/trackers/schema/(tracker) to validate that we can get the tracker schemas back.
* put data for all trackers (except ios-survey-tracker, which will never actually write health data) to verify that the data can be written back to the server.