add support for Browserify.external(bundle)

Allows for one bundle to reference another bundle for any requires which
the external bundle may contain. Allows for better reuse of dependencies
to avoid duplication when packaging for client.
pass extensions opts to browser-resolve and module-deps
return this from extension() method
pass extensions as an option
propagare row.id through deps stream
Browserify.prototype.extension(), docs
mention --extension in the advanced usage section
Merge remote-tracking branch 'shtylman/wip-external-bundle'