Update lodash.d.ts to support TypeScript 1.0

With the removal of parts of the Type Inference system the interface Collection<T> fails to work with List<T>, 0 Array<T>, and Dictionary<T>.  

This change breaks out all instances of Collection<T> into Array<T>, List<T> and Dictionary<T>.  Also we further break out instances of List<T> into Array<T> and List<T> to support Array's and Array Like Objects.  This should address most of the issues found in #1759.

I know this change is a lot more definition code that we previously had, but I do not see TypeScript gaining back the lostType Inference any time soon.  Mainly it seems like the performance loss was too drastic in the compiler.

There are still a few things in the tests that fail, but they have to do with reduce / reduceRight, I did not address those as part of this Pull Request.  It appears for the accumulator to work correctly it has to be strongly typed, and can not be inferred.