testpy.py: decode error message

Decoding is needed on Python 3.
onig.py: define all error codes
testpy.py: add set_output_encoding() function

Now it becomes easy to set the output encoding.
testpy.py: simpler implementation
Merge Ruby r24792 partly

Use st_index_t.
Note that the type of st_index_t is different from Ruby.
enc/unicode.c: constify

* enc/unicode.c (code{2,3}_{cmp,hash}): constify and adjust
  argument types.

* enc/unicode.c (onigenc_unicode_fold_lookup): constify.

* enc/unicode.c (onigenc_unicode_apply_all_case_fold): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46056 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
enc/unicode.c: lookup functions

* enc/unicode.c (onigenc_unicode_{fold,unfold{1,2,3}}_lookup):
  abstract lookup functions.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46057 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
case-folding.rb: conversion script

* enc/unicode/case-folding.rb: script to convert CaseFolding.txt,
  tranlated from CaseFolding.py.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46266 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
case-folding.rb: modularize

* enc/unicode/case-folding.rb (CaseFolding): modularize, and add
  --output-file option.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46267 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
case-folding.rb: merge tables

* enc/unicode/case-folding.rb (print_table): merge non-locale and
  locale tables, and reduce initializing loops.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46268 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
case-folding.rb: perfect hash for case folding

* enc/unicode/case-folding.rb (lookup_hash): make perfect hash to
  lookup case folding table.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46269 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
case-folding.rb: perfect hash for case unfolding1

* enc/unicode/case-folding.rb (lookup_hash): make perfect hash to
  lookup case unfolding table 1.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46270 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
case-folding.rb: perfect hash for case unfolding2

* enc/unicode/case-folding.rb (lookup_hash): make perfect hash to
  lookup case unfolding table 2.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46271 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
case-folding.rb: perfect hash for case unfolding3

* enc/unicode/case-folding.rb (lookup_hash): make perfect hash to
  lookup case unfolding table 3.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46272 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
unicode.c: no initialization

* enc/unicode.c (init_case_fold_table): no longer need to
  initialize tables at runtime.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46273 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
fix usage

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46317 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
case-folding.rb: add '-n' option to gperf

'-n' is needed for gperf 3.0.3 or earlier.
update casefold.h using case-folding.rb
move enc/unicode/case-folding.rb to tool/

Note: this commit should not be applied to the ruby-2.x branch.
Remove CaseFolding.py

Use case-folding.rb instead.