Support sort for compressed column

It is implemented by copied existing grn_obj_get_value_() based sort
implementation. Because I don't have idea to implement without
reducing performance for the current sort implementation. :<

The current implementation isn't changed except function and type
names. So performance isn't changed.
Use GRN_TRUEP() to handle value as boolean
Handle binary operation for vector as an error

Groonga crashes without this check.
Add in_values() function

    in_values(column, value1, value2, value3, ...)

equals to

    ((column == value1) OR (column == value2) OR (column == value3) OR ...)

It will be fast than == and OR combinations.

TODO:

  * Document me.
test in_values: add tests for value type (e.g. ShortText) column
Fix unexpected DB compatibility broken

Old DB doesn't have token filters information.
load: support updating existing record by _id key
Increase the max number of function arguments

8 -> 128
Close accessor for the same value
Fix a bug that "!XXX" may return inverted result

It may be happened on big endian environment.
doc: add --recursive option to git clone

Because Groonga repository has submodules.
test: reduce accuracy to avoid overflow as _score value
Fix a bug that needed bulk buffer isn't allocated automatically

It is caused only for weight uvector (vector of grn_id) bulk.
Export grn_expr_clear_vars()

It is useful to execute expression without
grn_ctx_send(). grn_expr_clear_vars() can clear arguments used in
executing the expression.

TODO
  * Document me
pat: fix a bug that chop() may return true for no suffix case

`**key` may not be NUL-terminated. So we should use `end` to detect the
end of string.
suggest: support the number of outputs

It'll supports MessagePack on suggest.
Fix a memory leak on converting weight vector to text
Add missing include for strcmp()
Add ToeknFilterStem that provides stemming feature

It is based on libstemmer provided by Snowball.

TODO:

  * Support CMake
cmake: support building stem token filter