Fix X86 MACROs

It is necessary to not consider
64bit architecture as always X86.
Update libffi to 3.1

Update libffi from 3.0.13 to 3.1
Disable MMAP workaround for Selinux

We disable this on Rubinius since it causes crashes. The JIT
needs to be able to create these mappings anyway, so it doesn't
create an additional depedency in FFI.
Update libffi to 3.2

Update libffi from 3.1 to 3.2
Spec for #2977: Error calling IO.write to a FIFO
Fix for #2977: Error calling IO.write with a FIFO
Spec for #2977: Improve spec for IO.write on FIFO

Remove unneeded conditional
Use IO.read instead of `cat`
Include build link in Travis IRC notifications.
Added specs for Kernel#caller_locations.

This also includes standalone specs for Thread::Backtrace::Location and its
methods.
Added support for Kernel#caller_locations.

This fixes #3218.
Updated specs for Kernel#caller

This adds a set of actual specs instead of just checking if the "caller" method
is present.
Allow a limit to be set in Kernel#caller.

MRI allows one to specify a limit when calling Kernel#caller. Besides that the
`exclude_kernel` argument wasn't even used.
Removed most rubinius:bug calls from JIT.
Don't attempt to enqueue JIT request if disabled.
Updated gems_list.txt.
Fixed making Ruby values for Metrics values.
Create FSEvent instances pinned.
Updated gems_list.txt.
Updated gems_list.txt for Bundler 1.7.7.
Made console more robust because god.

Real code https://github.com/mojombo/god/blob/367e587cd5c247a81a03bf3eae37c610b0f5ffaf/lib/god/process.rb#L327