noscroll-983712: Update the menu system to use flexbox

Using flex box means we can better control the layout of the menu. It
was a table, but is now a flexbox containing 2 divs, one for the names
and one for the descriptions.

Also we fixed some mouse selection problems.

Signed-off-by: Joe Walker <jwalker@mozilla.com>
breakup-984365: Add [add|remove]ItemsByModule to API

2 Parts:
* Factor addItem and removeItem out of [add|remove]Items
* Add a modules store and [add|remove]ItemsByModule functions.

Signed-off-by: Joe Walker <jwalker@mozilla.com>
breakup-984365: Add delayed loading to api.js

addItemsByModule now allows custom loaders, and there is a load function
to perform delayed load actions.

Signed-off-by: Joe Walker <jwalker@mozilla.com>
Merge branch 'master' into mozmaster

Conflicts:
	lib/gcli/nls/strings.js
	lib/gcli/ui/menu.html
	lib/gcli/ui/terminal.css
	lib/gcli/ui/terminal.html
	lib/gcli/ui/terminal.js
breakup-984365: Add comment about fixing promise implementation

Signed-off-by: Joe Walker <jwalker@mozilla.com>
breakup-984365: Fix memu system

Signed-off-by: Joe Walker <jwalker@mozilla.com>
breakup-984365: Make the 'command' item type the default

So now you don't need to say item:'command' in each command.

Signed-off-by: Joe Walker <jwalker@mozilla.com>
breakup-984365: Update [add|remove]ItemsByModule to take options

This allows us to specify delayed loading properly.

Signed-off-by: Joe Walker <jwalker@mozilla.com>
Merge branch 'master' into mozmaster