Bind to events only when the picker is shown.

Greatly increases performance on slow machines with IE8 when multiple
datepickers have been instantiated.
Fixes a memory leak.
Differentiate between main events (needed at picker init) and secondary events (only needed when picker is open)
Build event handler lists at init, not every time we attachEvents