Fixes #1831
so `node foo` will load one of: ./foo.js ./foo.node ./foo/index.js ./foo/index.node Test cases added. Ensured no conflict with native names.