Add specs for error inside to_hash of keyword args
Improve keyword arguments coercion and fix GC crash
PowerPC64 support for LLVM and Atomic

This adds architecture-specific support for the ppc64 of the following components below:

* LLVM Host CPU Name
* Atomic macros
Added specs for IO.new with closed IO streams.
Added checks in IO.new & Kernel#flush_stdio for closed IO streams.
Added C-API specs for rb_std{in,out,err,defout}
Fixed rb_std{in,out,err}, added rb_defout
vm capi: more MRI C API enum types compatibility.

* add RUBY_ prefix for T_XXX types
* add backward compatibility for T_XXX types.

Currently, MRI provides `RUBY_T_XXX` forms of enum types in C extension.
But, Rubinius does not provide these of types.
So, it causes gem installation error, when gem uses `RUBY_T_XXX` in C extension.

e.g. glib2 gem:

```log
rbglib_utils.c: In function 'rg_s_parse_debug_string':
rbglib_utils.c:250:22: error: 'RUBY_T_HASH' undeclared (first use in this function)
     Check_Type(keys, RUBY_T_HASH);
```
Try to coerce Complex with only real part.

This closes #3142.
added a spec for coercing Complex with only real part into Float
Implement rb_funcall_with_block

This commit adds `rb_funcall_with_block` (which is available in MRI) to the C
API.
Add specs for rb_funcall_with_block

This commit adds specs for `rb_funcall_with_block`.
Merge pull request #3131 from gustavotemple/support-llvm-ppc64

PowerPC64 support for LLVM and Atomic
Merge pull request #3141 from cosmo0920/mri-capi-enum-types

vm capi: more MRI C API enum types compatibility.
Merge pull request #3143 from Benny1992/master

Coerce Complex with only real part
Renamed timerx left over from metrics migration.
Added start of Rubinius::JIT.
Added List#clear.
Switched to normal Thread for JIT.
Fix empty lines in rb_funcall_with_block spec