Fix for use with metadata option

I had a lot of trouble getting the metadata option to run. This fixes all the issues I had.

* When running the metadata option (which should be a bool, right??), I dont want the generated html output.
* It had a convoluted method for determining the main file. I think we should just have proper mains defined. The [npm spec](https://www.npmjs.org/doc/files/package.json.html#main) explicitly states it should be relative from the root.
* It was broken when trying to parse a dir outside of the current directory. 
This I'm not so sure about. It makes me nervous. `@defs["#{className}::#{name}"]` was undefined. 

I was running this with atom/text-buffer.