A substantial web application doesn't need to wait until all the required
JavaScript libraries loaded. Usually most of them can load asynchronously
and start acting whenever they are ready. Most commonly used approach
here would be AMD. That's a sophisticated and time-proved solution.
However to use it with libraries, you must have them converted to modules.
I don't appreciate the idea to interfere with 3-rd party library code, besides I would prefer loader library as small as possible.
So here we go! Micro-RequireJS is just 728B (gzipped JavaScript) and at the same time
it allows you to control non-blocking (async) script loading and dependency resolution.

Note that to use this library with IE8 you need to load ES5 shim (https://github.com/es-shims/es5-shim)
and AddEventListener polyfill (https://css-tricks.com/snippets/javascript/addeventlistner-polyfill/).
See ./tests/test-ie8.html