Make metadata crawling add main module path as module location

metadata/bower and npm now parse the path off of the main module
if present, and append it to the package location so that modules
can be found in nested dirs.  Split out uid-related functions, and
added minimal unit tests for uid, bower, and npm bits.

Closes #3