add pg aggregate functions support

This patch is adding **window function**, **postgres aggregate function** and **postgres inherits** support to `slick`.  

Sample codes for postgres aggregate function:
```scala
// prepare/define aggregate function
object AggregateLibrary {
  val StringAgg = new SqlFunction("string_agg")
}
case class StringAgg(delimiter: String) extends UnaryAggFuncPartsBasic[String,String](AggregateLibrary.StringAgg, List(LiteralNode(delimiter)))

// now, use it...
col1 ^: StringAgg(",").forDistinct().orderBy(col1 desc)
```

Pls help review and give your suggestions.