CommonJS Modules/1.0 Conformance

These patches make the CommonJS Modules/1.0 unit tests pass.

This could potentially break some existing modules slightly.  Specifically, a plugin implementer may need to change some require calls to relative paths, by adding './' or similar.  I'll review the existing modules and see if any adjustments need to be made to demos, etc.

This brings the behavior of `require` partly in line with what arbitrary npm modules would expect.  Some extensions to the CommonJS spec (such as direct cache access, paths, and file extensions) will still need to be done to make some modules (particularly things like coffeescript, which hook more deeply into the module systems) work as expected.