Normalize events

This PR replaces events with direct function calls:
```timepicker.trigger('open.timepicker')``` --> ```timepicker.open()```.

Previously ```open.timepicker``` would be fired too many times: 
- clicking the input field would cause ```open.timepicker``` to be fired
- giving focus to the input field would also cause ```open.timepicker``` to be fired

If you wanted to be notified when the timepicker was opened by binding to ```open.timepicker``` your callbacks would have been called too many times.

This PR fixes this by establishing an ```onOpen``` event which is only triggered when the picker is opened and only if it was previously closed. Similarly, it adds an ```onSelected``` event which is triggered when a time is picked.



We generally would call these `changeSpy`, `onOpenSpy` etc. NABD though