now value is correct for in memory cache, if it comes from cache plugin,
new facts or default (dict).

corrected setdefault param mismatch

Signed-off-by: Brian Coca <briancoca+dev@gmail.com>
now only returns values if it expired
Signed-off-by: Brian Coca <briancoca+dev@gmail.com>
moved default factory to None and now pass dict (closer to defaultdict
behaviour)

added __contains__ method in cache

currently merges local cache with facts, for some reason 'in' doesn't
seem to match existing keys.

Signed-off-by: Brian Coca <briancoca+dev@gmail.com>