Integrates caching into the ApiClient. Closes #30