Queries with partion keys will be accepted. 

This fixes issue #37 and issue #50
Please don't convert everything to Strings; by doing so you're losing quite valuable information, you're basically throwing type-safety out of the window, and making further pattern matching on generated ASTs harder. Use case classes instead:

    case class Identifier(name: String) extends AnyVal
    def identifier: Parser[Identidier] = ............ ^^ { Identifier(_.toLowerCase) }
    def quotedIdentifier: Parser[Identifier] = .............. ^^ { Identifier(_.toString) }