implement core of put, putAll

included a utility method to do type runtime checks.
also modified createDocument to return null if the
policy indicates an already expired document.
fix wrong statistic updated
implement core of remove and putAll
implement core of putIfAbsent

added the notion of cas to createDocument.
putIfAbsent should prevent other invocations to put
a different document on the same key by somehow locking
the key, so work in progress.