Bug 998847 - [Settings] refactor storage.js with AMD pattern

- move dialog into root panel
- rename id to class
- fix marionette test
- un-registered observer when leaving the panel
- add enabled to observer/unobserve
- create separated modules for each menu item
- move usb and media item together
- fix binding
- add py tests
- add storage_app_item_test
- return directly if the value is the same as this._enabled
- pass the element directly when the module only expects one element
Merge pull request #21159 from gasolin/issue-998847-5

Bug 998847 - [Settings] refactor storage.js with AMD pattern, r=arthur