csv-export plugin: custom data watcher

There are situations where the built-in watcher doesn't (or can't) notice when the data has changed.  In addition, naively trying to watch for changed data can be inefficient compared with code that really knows when it has changed.

This change adds a new option, customDataWatcher.  This is a function whose return value is appropriate to $watch in order to detect changes to the data; this allows apps using csv-export to specify the best way to detect changed data.