Bug 1090843 - Improve the time required for being interactive

- Delay load the modules for loading hardware information required in the module of the root panel.
- Delay the use of query selectors in the init function of the root panel.
- Remove redundant setTimeouts in the panel navigation process.
- Some modules required in main.js are delay loaded.
It is confusing that we use `window.LaunchContext._initialPanelHandler` to set handler while use `initialPanelHandler` to get. (same with `_initialPanelId`) If they will be assigned later, why we need to add its setter additionally ? Can we remove all setter parts and just reference to the right attributes directly ? (without prefix `_` would be more reasonable because they will be assigned with different values later and can be treated as public attributes.)