Address comments by JakeWharton

- Add documentation to changed methods
- Add handling for primitive arrays
- Add unit tests for primitive array handling

Should be a matter of merging this one and then updating your pull request!