ES6 module syntax support

Provisional support for es6 module import/export syntax.

Because we use this syntax is a growing majority of our projects, I had to implement it. Obviously this doesn't track a spidermonkey implementation that doesn't yet exist, but for those that want provisional support, it could prove very useful (per the discussion in #139)

I'd love any feedback.
If the expression types are all mutually exclusive, have you considered using only one slot for it?

Then, instead checking all slots for a presence of value in a sequence, the consumer code would take the value of the single slot and call predicate functions on it (`js2-from-clause-node-p`, `js2-var-decl-node-p`, etc), which is a bit closer to how the existing code is written. Though I suppose that might necessitate a new node type, for the default export expression, if that slot is otherwise indistinguishable from `expr`. Or you could just set a property on this node.

But could you give some examples of "failing all other cases" situation, where `expr` is used?