add CachedCouchDocumentMixin and use for default consumption values

This builds off the work that was started in https://github.com/dimagi/dimagi-utils/pull/192 (which i later removed and moved here - switching to the existing caching framework).

I'm not 100% confident in `CachedCouchDocumentMixin`'s handling of all cases but I am as close to 100% confident in this change as is reasonable. The tests hit every use case and I have run them extensively with caching both on and off.

This makes OTA restores in CommTrack significantly faster, at least when default consumption fires a lot.