Implicit casting to float value in predicates

NSPredicate does not support float values in query strings; only double is. If a value can be casted to a float, and a class has a float property, we can help the user by casting for her but it might lead to loss of precision.

@alazier @jpsim @astigsen 
This changes the semantics of the object literals: `2.0` is now allowed for float properties. Double values were previously not allowed and you have to use `2.0f`. Is this inconsistent with Objective C in general?