LDrawLoader: Refactor, cache pre-parsed file contents (#23157)
* this.cache -> this.fileCache
* Add in parsed data cache
* small fixes
* material fixes
* Remove FileCache
* Use in order materials from the local scope if possible
* simplify fetchData, ensure fetch errors are caught, throw a real error
* clone result, material simplification
* improve clone result perf
* Fix colors
* simplify cache API