Fix width of datepicker & prevent it from overflowing window

When the datepicker is aligned near an edge of the screen,
showing the calendars may require some adjustment to ensure that
everything stays aligned properly.
Along with the new start & end dates, pass the event to custom callback

In order to allow greater extensibility, it's super handy to have the
click event that triggered the change passed to the custom callback.
Add 'data-' attributes to <li>s with 3rd 'selection' param on ranges

In order to hook daterangepicker into our existing app infrastructure,
we needed to be able to pass some custom keys with our ranges. These
keys, for us, correspond to filters defined on the backend that are
already used all over the app.

Really, this implementation feels backwards, but fixing it would require
major breaking changes with the current functionality of
daterangepicker. To us at PipelineDeals, it seems like a better
implementation would be: Have these 'custom keys' replace the current
range keys, and have a third parameter passed to ranges with the "human
name" of the range, which gets displayed in the UI.

I can schedule some time to add some docs for this feature, if you feel
it fits within the scope of daterangepicker.
Merge branch 'fix_width_near_edges_of_window'

* fix_width_near_edges_of_window:
  Fix width of datepicker & prevent it from overflowing window
Merge branch 'pass_custom_cb_the_event'

* pass_custom_cb_the_event:
  Along with the new start & end dates, pass the event to custom callback