Describe full behaviour of Active Record's attribute query methods

Update the docs to more accurately describe how the Active Record attribute query methods behave ([applicable code here](https://github.com/rails/rails/blob/master/activerecord/lib/active_record/attribute_methods/query.rb)).
Makes sense and good point, @fxn, I guess it would lead to needing to add something similar around other mentions of "present" or "blank" throughout the docs.

Underlying this is what @sgrif mentioned about zero being treated as not present (I.e., blank) in this method, which is not how blank is defined in Rails. I agree that this should be rephrased somehow.

How about, instead of the current version (repeated here for convenience): 

    Query methods allow you to test whether an attribute value is present.
    For numeric values, present is defined as non-zero.

We change it to something like:

    Query methods allow you to test whether an attribute value is present.
    For numeric values, query methods also consider a number to be present if
    it is non-zero.

or, option 2:

    Query methods allow you to test whether an attribute value is present.
    Additionally, when dealing with numeric values, a query method will return 
    false if the value is zero.

Or something like that. What do you think?

@fxn as for the other rules, the only other one seems to be that it will also return false for boolean attributes that have a value that the database considers to be false ([code here](https://github.com/rails/rails/blob/master/activerecord/lib/active_record/attribute_methods/query.rb#L22)). For example, in the case of Postgres, that would be:

`false, 0, "0", "f", "F", "false", "FALSE", "off", "OFF"`

Not sure if it's worth mention here though. Rails already converts these values to `false` on assignment, if they're being assigned to a boolean attribute.