use r.js proper rather than amd-optimize (bug 1092718, 1078093)

using rjs is so much easier and powerful. It's Gulp's recommended way to build require projects. At first I went with gulp-requirejs which was a bad idea since it was blacklisted and didn't mesh gulp+rjs well. Then I went with amd-optimize which doesn't have enough features. So rjs does everything for us.

- Handles including modules like almond without concatting
- Allows an insertRequire so we don't need init.js
- Handles source maps easily
- Removes views/tests easily while stubbing, reducing our include.js size by a tiny bit
it sucks that you're requiring the `node.extend` library for this simple extend here. it might be useful elsewhere, but you could reproduce this in probably 4 lines. just need a loop and a variable for the destination object.