Return disposables from MenuManager which can be used to remove menus
:pencil: Update docs
:lipstick: spec description
Don’t add duplicate items to the same menu
Construct test instance of MenuManager in spec
:apple: Install via move instead of copy

This fixes the issue with the icon not showing up on OS X Mavericks
when building.

It seems that copying it to /Application file by file causes the icon to not
show up while moving it atomically there does.
! -> ~
Subscribe to editor commands 

We need to unsubscribe when the editor is removed!

Closes #3651
Spec for unsubscribing from commands
Merge pull request #3663 from atom/bo-subscribe-editor-commands

Subscribe to commands in TextEditorComponent so they are unsubscribed!
Merge pull request #3655 from atom/ns-menu-disposables

Return disposables from MenuManager::add and add specs
Extract MenuHelpers from MenuManager for reuse by ContextMenuManager
Make arguments atom.contextMenu.add consistent with atom.menu.add
Add devMode flag to individual items
Call context menu item ::created hooks with the click event
Add shouldDisplay hook for context menu items

If present, if a falsy value is returned from this function for a given
context menu invocation, the item will not be displayed.
:public: Document new ContextMenuManager::add API
Deprecate old style calls to ContextMenuManager::add
fixup! Call context menu item ::created hooks with the click event
Use new format for platform menus