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
Removed explicit block in Enumerable#flat_map

Thanks to @s2gatev for bringing this up.
Fix typo

[ci skip]
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