Ensure we are returning either +true+ or +false+ for +#==+

460eb83d cused +ActiveRecord::Base#==+ to sometimes return +nil+ in some cases,
this ensures we always return a boolean value.

This broke a test on discourse when testing against 4.1.0.rc2, see https://github.com/chancancode/discourse/issues/1.

I also fixed a similar problem in AR reflections. That condition doesn't seem to be currently tested, and I'm not sure if it's worth adding a specific test for this, but the change seems safe. If we want to make sure that's tested, I can investigate and add that.

I checked other definitions of `#==` within the codebase for similar problem by inspecting the code and from our existing test suite (see https://travis-ci.org/rails/rails/builds/21779437). I believe these should be the only two instances of the same problem.

cc @fxn @tenderlove