Typeahead support for CQL

This uses the `SyntaxError` objects generated by PEG.js to create a set of possible completions. These are winnowed down using the parser. The comment in `QueryCompletion.js` has more detail.

This also includes a "playground" for iterating on the completion logic & UI. I found this helpful for exploring the `expectation` objects that PEG.js returns and for quickly determining which query patterns did and didn't work. The only fancy notable thing about it is the `require.js` file I took from [Smoothie](https://github.com/flowyapps/smoothie), which lets us use node.js-style `require` statements in the browser.

![screen recording 2014-11-13 at 03 58 pm](https://cloud.githubusercontent.com/assets/98301/5051599/72bb0fb4-6c07-11e4-9adb-7d0a52ced07f.gif)

I reworded the comment to mirror the Scala docs.

To clarify my original comment: I think of `flatMap` as a generalization of `map`. `map` has to map elements of the input list 1→1 to elements of the output list. With `flatMap`, that mapping can be 1→N, where N could be zero.