Data: Fix to .data update if key was added as-is

When adding data using object argument, the keys are not camel cased as internally it uses `.extend` to create data cache. This fails when trying to update the value currently as the update is always camel cased. 

Test Scenario: Creating a data using [object argument](http://api.jquery.com/data/#data-obj) with keys in object has dash(es).

````
//creates a data for the element with keys data-test-1 and data-test-2 
$('#data-test').data({'data-test-1': 1, 'data-test-2': 2}); 
//logs 1
console.log($('#data-test').data('data-test-1'));
//creates a new data dataTest1 and updates the value 4
$('#data-test').data('data-test-1', 4);
//still logs 1 as the update didn't actually update the value
console.log($('#data-test').data('data-test-1'));
````

Test Case: http://jsfiddle.net/c0k0owkq/

![jq](https://cloud.githubusercontent.com/assets/1577203/5320813/6fdb0344-7c83-11e4-992c-0a04b93e0834.png)

The fix is to either use a different method instead of `.extend` to add data from an object or check if the key exist as-is when updating. The later was an easy change.
There should be spaces everywhere after the opening bracket and before the closing one if there are any parameters passed, e.g. here `div.data()[ "data-test-2" ]` etc.