Tolerate undefined start & end in getDataRange()

'start' isn't supposed to be an optional entry in an item, but in a project I accidentally generated a few items that had neither start nor end, amongst many items that _did_. The timeline chart looked fine, but the functionality of setVisibleChartRangeAuto() was broken, so the chart was zoomed to the default of 'now', rather than to show all the properly defined elements.

This fix makes the function more tolerant of bad data, and the zoom level is now back to the expected behaviour.