Don't call Grim.deprecate for undefined context menus

This preserves the original behavior, in which passing undefined to
atom.contextMenu.add was a no-op that returned a no-op disposable.

Signed-off-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
Don’t add undefined context menus when activating package resources

Signed-off-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
Dispose of WorkspaceElement subscriptions when detached

Signed-off-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
Remove WorkspaceElement::handleWindowFocus

We were getting stack traces in specs when the window got focused caused
by this subscription never getting disposed. We investigated, and can’t
find a case where removing this causes any issues.

Tested:
* Loading/reloading empty window
* Loading/reloading window with pane splits
* Opening/closing dev tools
* Switching focus between atom windows
* Switching focus between applications

Signed-off-by: Max Brunsfeld <maxbrunsfeld@gmail.com>