enhance(sidenav): support promise notifications for open, close, toggle

Fix focus management on close

Refs #855, Refs #728, Closes #728, Closes #855, Closes #947.
Close #989.