Bugfix/dont mutate payload

Fixes bug where `read_resource`, `update_resource` etc would modify the payload passed into them.

Also:
- add explicit `json` dependency
- reorganize some names/files to fit with ruby testing conventions better
- flesh out some basic tests for primary method functionality