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

Closes #947.
Line 216  changes a watched scope variable.
Line 189 publishes a promise as part of a $digest callback when `isOpen` changes.
The thought is to either attach a callback to the $digest cycles or use $timeout wait a frame (for a valid promise instance).