Store additional item fields as data- attributes

If additional item fields are defined on the DataSet or array being
passed to the timeline, store them as data- attributes on the content
element.
Define allowed dataAttributes as Timeline option

Read from an array of allowed dataAttributes at the timeline level and
write them as data- attributes on the item
Add data-attribute example
Update timeline options to include dataAttributes
Merge pull request #290 from dturkenk/data-attributes

Store additional item fields as data- attributes
Merge branch 'master' into develop
Updated history
Smarter check whether data changed when redrawing items. (See also #290)
Docs updated. A litte refactoring
Fixed #162: Implemented a new item type `background`
Refactored `ItemBox`, `ItemRange`, and `ItemPoint` to respectively `BoxItem`, `RangeItem`, and `PointItem`.
added multiline text to edges, updated multiline code for both nodes and edges #291
updated example, updated history
Fixed a 1 pixel offset in the background panel used to draw the time axis.
Merge remote-tracking branch 'origin/develop' into develop

Conflicts:
	dist/vis.js
Fixed an overflow issue with the dots of BoxItems
history updated
Fixed #248: Implemented support for templates
Oops fixing the overflow issue with the dots of BoxItems broke item selection.
Added an example on loading external data