Hopefully fix the timing issue with preference value removal

@devoncarew

In removeValue() and clear(), a Future corresponding to removal of a value from the underlying Chrome storage was returned immediately, with the cached value updated only when the removal was complete. That meant that for a short period after returning from the function, the client would still see the old value in the cache.