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
the d3 api claims that set only operates on arrays of strings and only accepts string arguments to `add`. however, this interface matches its actual present behavior