This commit is a slight refactoring of the `Module` trait and backend in `cranelift-object`. The goal is to enable parallelization of compilation when using `cranelift-object`. Currently this is difficult because `ObjectModule::define_function` requires `&mut self`. This instead soups up the `define_function_bytes` interface to handle relocations so compilation can happen externally before defining it in a `Module`. This also means that `define_function` is now a convenience wrapper around `define_function_bytes`.