Fix two bugs in define(): fail fast if the module being defined is already loading or loaded; actually make use of the metadata/address options passed in, if any.