Refactoring, documenting and fixing read-through caching.

Adding tests.
Fixes #889.
Adding integration test for read-through caching.

Proves #890 has been fixed by prior changes from PR #1046.

Closes #890.