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.
Want to make a list of things for this case like `_.each(['a', 5, null, false, ...]`