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>