_.toArray to have consistent behaviour modelled after ES6

related to #1421

It's a breaking change (although I doubt it will affect much) but it makes a lot more sense than how `_.toArray` is implemented now, plus it seems to be how `Array.from` is speced out.

If the value passed into `_.toArray` is an array like object (or an array) then an array is returned , if not an empty array is returned. Very simple.