[esprima] remove redundant data from XJSElement nodes

Summary:
we were including redundant data from `openingElement`	in `XJSElement`	directly.

this causes the jstransform traverser to hit the same AST node multiple times: first it hits `node.name`, then later `node.openingElement.name`. the same is true for `attributes`.

I ran into this because I was trying to transform the value of an attribute but the traverser had already hit `closingElement` so `catchup()` had already flushed the buffer to the end of the closing element, which means I can't modify the output of the attributes.

technically, I think `openingElement` and `closingElement` are both CST nodes, not AST nodes, and should be removed. `XJSElement` would have enough information with name, attributes, children, and overall range directly on itself. However, that would make it very hard (impossible?) to maintain the position of the closing tag, so I think we need to hold off on that until we have sourcemaps working. Given that, i'd rather keep parallelism between `openingElement` and `closingElement` even if we'll reintroduce `name` and `attributes` one day.

Test Plan: unit	tests. will update callers and test them in a separate diff

Reviewers: jeffmo, dmitrys

CC: yungsters, jwalke, phunt, awolff, tomocchino

Differential Revision: https://phabricator.fb.com/D1070073