onChange gets source element

Passing the source element to the `onChange` callback, this allows
triggering of 'change' event on the original element if it has other
event listeners.
Removed `refreshSourceSelectbox` execution

When `refreshing` the original <select> and re-drawing the <options>,
it loses HTML5 data attributes, I don't see any reason why we need to
`refresh` the original element.

In addition, added ChezFre's pull #9 which creates a unique ID for the
heapbox when possible.