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
Implement Array#count instead of falling back to Enumerable#count

This avoids iteration with #each if no arguments are given.
Merge pull request #3133 from jemc/array_count

Implement Array#count instead of falling back to Enumerable#count
Add spec for Dir#fileno (Ruby 2.2+)
Implemented Kernel#itself

https://github.com/ruby/ruby/commit/0a0160d6b659f6131a525fe1579e7c463d4c197e
Fix kernel itself_spec
Fixes #3134 causing linker error due to undefined references

Added missing definitions of DefaultCodeSlabSize, DefaultSlabSize, and
DefaultSizeThreshold static variables of RubiniusJITMemoryManager class.
Merge pull request #3136 from jineshkj/master

Fixes #3134 causing linker error due to undefined references
Support linking to LLVM 3.5.

When using LLVM 3.5 one now has to include the --system-libs option when
linking. This option includes flags for linking to zlib and other libraries
required by LLVM. Previously this would be handled by other flags such as
--ldflags. From what I can gather the order is also important: system-libs has
to come after ldflags.

To implement this I've added the config option llvm_ldflags and moved generating
these flags to the configure script (instead of rakelib/blueprint.rb). This
change also fixed a small Windows issue that I noticed: the blueprint code would
call #sub on the ldlags Array, but that method only exists on the String class.

Worth noting, Julia seems to have had the same problem with LLVM 3.5:
https://github.com/JuliaLang/julia/pull/7696.
Added configuration file for EditorConfig.

This is a universal configuration file for common editor settings such as
indentation sizes. Since we're using 2 spaces for C/C++ this should keep things
consistent (given users have an EditorConfig plugin installed). For example, in
my own case Vim keeps defaulting to 4 spaces which is rather annoying.

See http://editorconfig.org/ for more information about EditorConfig itself.
Lock when calling Console::stop_threads().

When calling this method (e.g. when forking) there would be a very small time
frame where a read() call in FSEvent could be called _before_ the exit-request
status was set. This would result in a console thread hanging forever in a
read() call as everything else was already shut down (by the looks of it).

The solution here is to lock before we set the status and perform any cleanup
tasks.

This fixes #3121 #3129.
Revert "Lock when calling Console::stop_threads()"

This reverts commit 646b214a64684eceb04d1cf0522c8a336b0a7086.

There was a problem in the conditional that made it appear as if this commit
actually solved the problem. I could make up a number of excuses as to why this
slipped past my eye, but the reality is that I'm just a dumbass for missing
this.
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.