Adding externalize module support.

`b.require` doesn't just work with files it works with modules too.
Now there's support for specifying files OR modules for grunt-browserify.

This branch includes a manual merge of #39, and adds test coverage as well.