Ensure direct relationships cause correct cache expiration

* Previously, directly-related objects would not be expired, even though
  they may be included in stub lists
* Clean up and extend cache mappings specification
* Don't cache Task objects