store: return when read_only is set

I'm mostly concerned about CAS here @fbogsany, do we need to process the block either way, or can we assume it's safe to skip it? I'm thinking if a client is doing something with a side-effect in the block, we need to actually execute the block—but ignore the return value?
And this should be:
```ruby
       def cas_multi(*names)
         options = names.extract_options!
         options = merged_options(options)
         keys_to_names = Hash[names.map{|name| [escape_key(namespaced_key(name, options)), name]}]
 
         instrument(:cas_multi, names, options) do
           @data.cas(keys_to_names.keys, expiration(options), cas_raw?(options)) do |raw_values|
             values = {}
             raw_values.each do |key, raw_value|
               entry = deserialize_entry(raw_value)
               values[keys_to_names[key]] = entry.value unless entry.expired?
             end
             values = yield values
             break true if read_only
             Hash[values.map{|name, value| [escape_key(namespaced_key(name, options)), serialize_entry(Entry.new(value, options), options).first]}]
           end
         end
       rescue *NONFATAL_EXCEPTIONS => e
         @data.log_exception(e)
         false
       end
```