feat(dropdown): support programatic trigger & toggle callback

Closes #270
Closes #284
Closes #1447
feat(dropdown): add support for `escape` key

Closes #1558