define and use print format macros for mrb_int

For portability: %ld can't be used to print a 64-bit mrb_int on
WIN(32|64) because long is 32-bit wide.
fix the type of value that is returned by bit-shift expression.
 fix the type of value that is returned by bit-shift expression.
"Ax" is larger than 16-bit.
fix the type of value that is returned by bit-shift expression.
fix comment.
Use mrb_intern2() instead of mrb_intern(). This is for avoiding overhead by strlen().
Make intern_gen() inline. This is enough tiny to be inlined.
Add an internal function intern_c(). It reduces function call parameter. For maintainability and performance.
Add new API mrb_intern_cstr(). This is for naming orthogonality. mrb_intern is also left for backward compatibility.
add Enumerable#each_cons
add method(uniq, -, |, &, flatten, compact) and test of Array to mruby-array-ext
Add configuration macro MRB_PARSER_BUF_SIZE.
add Enumerable#each_slice
add Enumerable#group_by
add mruby-hash-ext mrbgem, and method: Hash#merge!
Merge pull request #1047 from skandhas/pr-add-methods-to-Enumerable

add Enumerable#each_cons/each_slice/group_by
Merge pull request #1045 from kouki-o-iij/pr-hash-ext

add mruby-hash-ext mrbgem, and method: Hash#merge!
Merge pull request #1044 from kouki-o-iij/pr-array-ext

add method(uniq, -, |, &, flatten, compact) of Array to mruby-array-ext
Array bang methods should return nil if no change happen