Bug 1065279 - [settings] refactor Hotspot panel with AMD pattern

It updates the properties asynchronously but calling to the change listeners, so there is a chance that the user of this object won't get notification. Consider the following calling sequence:
```
hotspot.init();
hotspot.addEventListener('wifiHotspotChange`, this._setHotspotSettingsEnabled.bind(this));
this._setHotspotSettingsEnabled(hotspot.wifiHotspotSetting);
```

`hotspot.wifiHotspotSetting` is initially null and later when the callback of `SettingsCache.getSettings` is called and we finally got the real value stored in moz settings, it would never have a chance to update the UI , so should ensure that every change to the property is notified.