Data for elements that don't contain attributes.

Note: This requests is specific to the data.js module.

Attempting to set data on DOM elements that don't contain attributes (e.g. $(window)) results in a TypeError (Cannot read property 'length' of undefined). Essentially this happens because the code assumes all elements contain attributes.

The pull request contains minor changes to `attributeData` which uses attributes if they exist or fall-backs to an empty array otherwise. I've added a test and executed it on;

### Desktop
- Chrome (30.0.1599.101)
- FF (24.0).

### Mobile
- Android (Chrome) 4.2.2
- iOS 5 (Safari)

I hope this makes sense ... if not then let me know.