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
Separate method for the repeating logic?