VID-2077 Treat negative caching differently

When there are no results, cache for a shorter TTL or zero TTL.

The rational for zero TTL on getDetails is that its called internally, and many places that call it also cache the results of the set.  On things that return data to an external client, the no result cache is minimal, currently 5min.

https://wikia-inc.atlassian.net/browse/VID-2077
Should `negative` be `null`, `noResult`, or `empty`? My initial response to negative was confusion because I only think of cache TTLs being natural numbers.