This refactoring primarily removes the dependency of the gdbjit image creation on the `finished_functions` array, which shouldn't be necessary given the input object being passed in since information can be read from the object instead. Additionally, though, this commit also removes all `unsafe` from the file, relying on various tools in the `object` crate to parse the internals and update various fields.