core.js: Use XHR to load a shader from html files

It will reduce memory consumption.
E.g., in the case of mv_sandbox.html, it goes down to 55kB from 65kB.
core.js: Add cache for XHR load, and use the cache for shader loading

It reduce memory consumption from 55kB to 47kB in mv_sandbox.html.