Allow nested folders for lib/ modules

A bad commit munged #4616, and I'm not smart enough to fix it.

@isaacs, I added a patch for lib/module that prevents userland from requiring nested core modules.  The idea here is that stream.js can require stream/readable.js and expose the object internally, but a userland require for something like "cluster/" will never resolve to an internal module (even if lib/cluster/* were to exist).