Add underscore methods (map, keys, values) to models

Re-opening accidentally-closed #2040 per @jashkenas:  Which underscore methods (if any) should Backbone.Model natively mixin for `attributes` access?

Model is a unique scenario where the hash of attributes may but likely doesn't contain related, iterable data, of the kind for which underscore's collection methods are particularly suited.

The current method list in the patch is as follows: `each`, `map`, `contains`, `sortBy`, `groupBy`, `size`, `keys`, `values`, `pairs`, `invert`, `pick`, `omit`, `isEqual`, `isEmpty`, and `chain` (plus aliases).

I'm in favor of keeping all except `pairs` and `invert` (as per @wyuenho on #2040, either they both stay or both go), and perhaps special-casing `isEqual` (to compare against another model) and `contains` (to look at keys in addition to or instead of values). `groupBy` and `sortBy` could be particularly useful, but probably less so when acting on the values of the attributes hash, more likely on its keys, e.g. in grouping by prefixed named keys.