Queries with partion keys will be accepted. 

This fixes issue #37 and issue #50
Additionally, set membership predicate is somehow different from comparisons by the fact it takes a set of possible values, while comparisons compare always with one value. Why not have a separate subclasses of Predicate for that? Then it would be easy to check for the type of the predicate - e.g. range predicates on partitioning key are not supported, only = or IN.

  trait Predicate
  case class InPredicate(columnName: String, values: Set[Any]) extends Predicate
  case class EqPredicate(columnName: String, value: Any) extends Predicate
  case class RangePredicate(columnName: String, operator: Operator, value: Any) extends Predicate  // for completeness only