Recast loader.define() to return a Promise.
Metadata is not passed to the normalize hook.
Rename link hook to instantiate.