feat(dropdown): support programatic trigger, toggle callback & esc key

Closes #270
Closes #284
Closes #1447
Closes #1558