Implement generic typing for D3.Map and D3.Set

For an example of the new typings in action, check out this pull request: 
https://github.com/palantir/plottable/pull/876/files
i changed `Array<T>` syntax to `T[]` shorthand which is consistent with general usage