Add Groonga::DoubleArrayTrie#update

This is a low level API for `grn_table_update_by_id()` and
`grn_table_update()`.

[GitHub #22] Bind `grn_table_update_by_id()` and `grn_table_update()`

TODO: add an easy-to-use API (e.g.: Groonga::Record#rename).
Use my name
Add missing "static"
Remove needless `NIL_P` check

Because `rb_grn_scan_options()` accepts `nil` as `options`.
Unindent
extconf: add have_func checks for `rb_sym2str()` and `rb_str2sym()`
rb-grn.h: add backward compatible macro for `rb_sym2str()` and `rb_strsym()`
use rb_sym2str() and instead of rb_id2name(SYM2ID()).
use `rb_str2stm()` instead of `ID2SYM(rb_intern())`
Revert "use `rb_str2stm()` instead of `ID2SYM(rb_intern())`"

This reverts commit 0070c031ba8ad24f7df9eaabcb1b8623f6166cf6.

I've misunderstand here...
extconf: add rb_to_symbol func check

`rb_str2sym` is my misunderstand. Sorry... :(
rb-grn.h: add rb_to_symbol() backward compatibility macro
use rb_to_symbol instead of ID2SYM
suppress incompatible type conversion warning

warning: incompatible integer to pointer conversion
 assigning to 'const char *' from 'VALUE' (aka 'unsigned long')
  [-Wint-conversion]
  *name = rb_sym2str(rb_name);
use `SYM2STR` name for symbol GC macro

Using rb_sym2str name causes confusing.
There is differnce of original rb_sym2str and macro's rb_sym2str.
So, it shuold be rename.
use rb_id2sym if avaliable

In Ruby 2.2, use rb_id2sym() instead of ID2SYM().
Using rb_to_symbol() inappropriate.
use rb_id2sym inner RB_GRN_INTERN
use rb_str_intern() instead of rb_intern()
use `rb_str_intern()` inner RB_GRN_INTERN

Because it is still used `rb_intern()`.
Merge pull request #24 from myokoym/bind-grn-table-update

Add Groonga::DoubleArrayTrie#update

Patch by Masafumi Yokoyama. Thanks!!!