UPDATE fix data source setter

Setter (#set_by_proxy) incorrectly set the attribute based on the key passed. 
In other words if the key was a String, it would be represented as a String 
on the data source.  The setter _should not_discriminate against key type. 
If a key exists in the data source the setter should set it regardless of the 
key's type --whether it is a String or Symbol, it should not matter.
    
Secondly, the setter (#set_by_proxy) _should not_ alter the type of
value, changing the type of the value passed could results in unexpected
behaviors to the consumer (i.e. classes or modules)