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 removed the superfluous ones and added a `throw` at the bottom, which should be unreachable.

Single returns vs. multiple returns is a matter of style. I'm in the multiple returns camp, but others disagree. Fun discussion [here](http://stackoverflow.com/questions/36707/should-a-function-have-only-one-return-statement).