much cleanup to linking semantics, and added ModuleRequests static semantics