NPE check in getTimeInMillis()

added a null check to getTimeInMillis()
and remove the null passed parameters
I prefer to throw exception immediately if any parameter is unwanted. This seems hacky to me. And still makes extra serialization when time-unit is null. What about something like:

```
@Override
    public V put(final K k, final V v, final long ttl, final TimeUnit timeunit) {
        if (k == null) {
            throw new NullPointerException(NULL_KEY_IS_NOT_ALLOWED);
        }
        if (v == null) {
            throw new NullPointerException(NULL_VALUE_IS_NOT_ALLOWED);
        }
     if (timeunit == null) {
            throw new NullPointerException(NULL_VALUE_IS_NOT_ALLOWED);
        }
        final Data key = toData(k, partitionStrategy);
        final Data value = toData(v);
        final Data result = putInternal(key, value, ttl, timeunit);
        return (V) toObject(result);
    }
```