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

to replace https://github.com/mozilla-b2g/gaia/pull/19151/files
Because `AppStorage` is a singleton, we can't guarantee that each time when using AppStorage, it is `enabled`.

In this way, if somewhere disable `AppStorage`, we may not be able to reflect latest value on `freeSize` and in `Storage`, we have no way to update this value anymore.

Any idea about this problem ?