Define the Duration#instance_of? method

Since Duration is extending from ProxyObject which extends itself from
BasicObject, the Duration object doesn't respond to the #instance_of?
method. Thus, the #method_missing hook get triggered, delegating the
method to its `value` attribute.

However, Rubinius' #eql? definition relies on #instance_of?, thus this
will equal to true with a Fixnum (since its `value` attribute is a
Fixnum) while it should not.

The previous behavior was wrong anyway, no matter the implementation.
Don't fight against ourselves for the default log level

If we want to always default to :debug, let's just do that.

At which point the production.rb entry can become an "uncomment to
change" instead.
Replacing an each with reduce

The functionality has not changed, but the code is more elegant by
using `reduce` instead of `each`.

This way no accumulator needs to be declared, no explicit return is
needed.
Pass logging message through block.

This follows the good practice listed on http://guides.rubyonrails.org/debugging_rails_applications.html#impact-of-logs-on-performance
Missing space. [CI SKIP]
Merge pull request #16634 from tgxworld/missing_space

Missing space. [CI SKIP]
Merge pull request #16633 from tgxworld/prefer_log_message_through_block

Pass logging message through block.
Using `each_with_object` instead of `reduce`

This way no new object allocation is taking place. Thanks @jeremy for
the suggestion!
Merge pull request #16560 from robin850/rbx-duration-eql

Define the Duration#instance_of? method
Merge pull request #16626 from adomokos/replacing-each-with-reduce

Replacing an each with reduce
Merge pull request #16622 from matthewd/default-debug

Don't fight against ourselves for the default log level