better bounds retrieval

getBoundingClientRect() works for retrieving the desired wrap
dimensions, but it doesn’t work for getting the x and y attributes
because it returns the overall global position – which is handy, of
course, but in this case we’re probably better off using local values
from the element so we’re automatically playing nice with transforms,
<g> nodes, animations, etc. This is now changed to using D3 native
attribute retrieval.