We now check relocations offsets are within range, and the relocation index is valid.
Also updated tests which contained invalid Wasm files that were previously not checked.
Could this be controversial?!? I know some people advocate for "minimal" correctness checks in LLVM, since the linker reads in hundreds of object files and we don't want to do expensive validation for each one.
These checks are pretty lightweight though, and should handily catch any bugs we might have.
I find these method names a little confusing. Perhaps the code will be clearer just to inline them? (or perhaps drop the final Index from the name)?