converted vulcanize to stdio-when-needed library and utility

This adds both stdio capabilities to the `vulcanize` CLI utility, and adds string i/o to the `vulcan` library when used in a node program. A test.js has been added that runs through the various ways to call the main processing function, which can by run with `npm test`, and the README.md has been amended to include documentation for the additional ways vulcanize can be used with these changes.

I could not find a styleguide or profile file, so the style might accidentally not match in some places. Also note that there's some indentation changes without code changes for large parts of vulcan.js, so you probably want to look at the file differences using the [w=1](https://github.com/Polymer/vulcanize/pull/50/files?w=1) option on github to ignore those. 
Why are these lines removed? They are testing for deduplication of a shared dependency.