Adding limited having clause.

This patch provides having clause which only implement top and bottom function.
query parser accepts boolean expression but I couldn't figure out how to implement that.

you can query having clause like this.

select mean(cpu), host from service group by time(1m), host having top(mean, 10)

Syntax:
group by columns [having (top\(column_or_alias, limit\)|bottom\(column_or_alias, limit\))
support multiple shards
return error message when parsing failed