JSON via XHR, refresh data on zoom/unzoom, misc improvements to array parsing, dynamic rollPeriod

 * Add support for fetching JSON via XHR by detecting the content-type
   'application/json'.

 * Change array parsing to detect if the first row contains labels by
   checking if the second element of the first row is a string.

 * Add support for dates as strings in ISO 8601 format in the array
   parsing.

 * Add support for refetching data when zoom in/out occurs, so that
   more granular data can be fetched when zooming in. This is enabled
   by the user attr refetchOnZoom: true.

 * Add a quick'n'dirty JSON-vs-CSV parser benchmark.


* Make it possible to adjust the rollPeriod depending on how many
   data points we have.

 * The first option is to set rollPeriod to be a function that takes
   the length as argument and returns the rollPeriod to be used.

 * The second option is passing in a dictionary of roll periods where
   the key is the numeric rollPeriod value, and the value is itself
   a dictionary with two keys: min and max - if the length of the data
   set falls within these min and max, the rollPeriod that is the key
   is used.