Allow nested folders for lib/ modules

The lib/ module has become increasingly cluttered over time, and the recent streams2 module added a number of private _stream_* files.  This patch allows nested folders within the core modules, without altering the public API.

Note: this is a simple mechanism for organizing the files and lacks niceties, such as looking for ```require('stream')``` at lib/stream/index.js, or allowing sub modules to do local requires such as ```require('./readable.js')```