Review feedback for empty resource responses

This modifies the empty response behavior:

* `map` types return an empty dict
* `string` types default to `None` instead of empty string