Fixes for parsing JSX tokens array

With `tokens` option enabled, esprima-fb returns incorrect array of tokens in `ast.tokens` property in following ways:

1. Duplicate `XJSText` tokens appear due to double-peeking next token into tokens array by both `expect()` in `parseXJSOpeningElement()` and `peek()` in `parseXJSElement()`.
2. Whitespaces in `<Tag> a </Tag>` were ignored and returned as pure `'a'` literal inside of `XJSText` element; this also caused children array of `<Tag> </Tag>` to be empty when `tokens` option was enabled.

Both bugs are fixed and regression test added.

Also:

1. Ignored `node_modules` folder.
2. Added running JSX tests in browser.
3. Changed versions in code to same as in package.json (required for tests).
> Kinda seems like it'd be good to have these in all tests, but I'm a little surprised that this passes given that I don't see any indication for the test runner to run with the tokens option enabled for this test in particular...?

Esprima passes that option by default, it just has advanced technique for comparing given test object with output which allows to pass only sub-node not entire AST (as is done in all the other test cases), but when you pass Program node, comparing it results in comparing tokens property as well.

> I see that you added fbtest.js to the browser test runner (thanks for that, btw) but does npm test also work?

Yes, sure. It works as earlier. You can pull it from my fork and try if you want.

Btw, why not to enable Travis on this fork?