Add support for data={object}

Turns:

var obj = {x:1, t:function(){ return "2"; }};

&lt;p data={obj}/&gt;

into:

&lt;p data-x="1" data-t="2" /&gt;

Possible improvement areas:
- call function with additional parameters (like propTypes)
- add invariant tests
- add support for attributes besides data