Cleanup datePicker usage

* Common setupDatePicker function, which automatically skips datepicker-change events if the selected date range has not changed.
* Common setDatePickerSelection function, which sets the range into $.data for comparing, and handles the setTimeout(0) case when datePicker isn't "initialized" yet