Break up client package and delete unused code (#4303)
- deletes unused methds
- make some things private to the package when possible
- moves some methods to separate files to make it clear how they're used
- fix lint errors around naming fields/structs (linter fails since the
file is touched)
No actual method implementations are changed
other than updating the references to fields/structs that changed due to
linter renames.