support scoped module names

This should probably be used everywhere that code validates a package name, although it's somewhat different from the `isOrganized` validator used by npm itself. Instead of using a simple regexp, it validates that the name starts with a `@`, has two parts separated by a `/`, and that those parts are URI safe.

Includes a test.
Good suggestion, will do.

This whole bit probably needs to be extracted out into a module, because I use it in a few places in the upcoming version of npm. It's so small, though...