More efficient deserialization for all endpoints
Protect against null tokens in returned json
Naming tweak
Fix bug for respondents without any responses

Initially reported by Andrew Brodie. For some surveys, there would be a
respondent returned by get_respondent_list, but with null returned by
get_responses for that respondent_id, causing data processing to fail.
Instead of filling in respondent info for responses, it now fills in
response info for respondents (the fix to json.net processing null
values 2 commits ago was needed for this too). Still not sure of the
underlying reason SM doesn't return the data as expected, but better to
ignore that missing data than to crash out.