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