smart multi bundles

Creating this pull request so we can discuss the best approach for both API surface and feature implementation. See the added test if it is not clear from my comments about what the final bundle output benefits are.

.require(bundle) allows for the capture of all files which this bundle
might contain. Previously, just the file which you did
.require({external: true}) was the one not bundled. This is even more
efficient when using external bundles.