merge revision(s) 39644,39646,39647,39874,39898: [Backport #8048]

	* load.c (features_index_add_single, rb_feature_p): store single index
	  as Fixnum to reduce the number of arrays for the indexes.  based on
	  the patch by tmm1 (Aman Gupta) in [ruby-core:53216] [Bug #8048].

	* load.c (rb_feature_p), vm_core.h (rb_vm_struct): turn
	  loaded_features_index into st_table.  patches by tmm1 (Aman Gupta)
	  in [ruby-core:53251] and [ruby-core:53274] [Bug #8048]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_0_0@40397 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
merge revision(s) 40135,40148,40173: [Backport #8165]

	* load.c (features_index_add): use rb_str_subseq() to specify C string
	  position properly to fix require non ascii path.
	  [ruby-core:53733] [Bug #8165]

	* test/ruby/test_require.rb (TestRequire#test_require_nonascii_path):
	  a test for the above.

	* test/ruby/test_require.rb (TestRequire#test_require_nonascii_path):
	  fix load path for encoding to run the test as stand-alone.

	* test/ruby/test_require.rb (TestRequire#test_require_nonascii_path):
	  RUBY_PLATFORM should escape as Regexp,
	  because RUBY_PLATFORM may contain '.'.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_0_0@40398 b2dd03c8-39d4-4d8f-98ff-823fe69b080e