chore(async): Improve loading configuration, assert and ensure invalid ones.

- If the loader is not valid, it should not be used.
- If `invokeLoading` will be invoked, it is possible that no async loader is available (empty array).
- Assert the loader builder function returns a valid function.
Merge pull request #25 from knalli/improve-loader

chore(async): Improve loading configuration, assert and ensure invalids