null for expired items, null in mget results, error on invalid maxAgeMs

if an item is expired or doesn't exist, get/mget returns null

if an array of `n` items are passed into `mget`, an array of `n` results
will be returned with `null` as the placeholder for items that are either
not in the cache or have expired.

if the maxAge of an item was not overriden in a InMemoryCache, or it
was not positive, `set` and `mset` will throw an error saying so.