Add _.assign function

@megawac [mentioned](https://github.com/jashkenas/underscore/pull/1907#discussion_r19318553) creating an alternative to `_.extend` but only adding own properties named `_.assign` to align with `Object.assign`. There wasn't an issue or pull request anywhere so here it is.

Since the 2.0 plan is to align `_.extend` with ES6's `Object.assign`, I can imagine this would just become an alias to extend.

I've created `baseAssign` here so that [other functions](https://github.com/jashkenas/underscore/pull/1907#discussion_r19317971) can take advantage of it. 

This implementation is a slimmed down (albeit less-performant) version of the one seen in lodash. Thanks @jdalton.
I don't dig the try catch, let it error and `QUnit` handle it