Close #551. Fix #409. Add aggregate funciton top and low

this patch provides aggregate function top and low. these function are
useful when executing analytics or summarize queries.

Added functions:
  low(columns..., limit)
  top(columns..., limit)

For instance:
  `select low(value, 10) from series` will output 10 `value` values with ascending order.
  `select top(value, 10) from series` will output 10 `value` values with descending order.

How to build:
  go get github.com/ryszard/goskiplist/skiplist
  go build src/daemon.go

Currently, these function support float64 and int64 types.

Limitations:
  * can't handle same value correctly (goskiplist limitation)

Misc:
  * each column should support alias.
    e.g) low(score as low_score, 10)

And, I'm not good at English and Golang. so if you find some wrong
points, plz feel free to fix it.
modify some tests
more idiomatic go
Merge branch 'pr-551'