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
Auto-detect context menu items in the old format
Only display ‘Inspect Element’ item in dev mode
Remove commented line
Update specs for new ContextMenuManager API/behavior

When selectors have the same specificity, menu items added *later*
appear higher in the list.
Clear context menus between specs
Restore original context menu ordering

Previously I used CSS specificity to order the most specific / recently
added menu items for a given element *first* when building up the
context menu. When a duplicate label was found for a given menu I would
refrain from inserting it. Now instead I order things the opposite way.
The most specific / recently added items come later and items with the
same label are clobbered by later items.
Put platform items back on .overlayer so they sort before package items
Remove logging
Honor item specificity while still preserving addition order

Rather than using order to specify item precedence, we now construct
a set of menu items for each element traversing upward from the target.
When merging items for a given element, we pass the specificity to the
merge function, which uses it to decide whether or not to clobber
existing items. When assembling the overall menu, we don’t ever clobber
to ensure that items added for elements closer to the target always win
over items matching further up the tree.
Prevent adjacent menu separators
Add pane splitting context menu items for all panes

The same menu items remain for `.overlayer` to force them to be ordered
before package context menu items.