Numeric nil type cast fix

Had to re-do the whole approach, there is no need to override both `AR::CA::Column#type_cast_for_write` and `AR::CA::Column#type_cast`, instead only `AR::CA::Column#type_cast_for_write` with `AR::Base#_field_changed?` need to be patched.

@maintux can you also test it? I think the new code won't have any of the problems you were trying to fix in #2, #3 or #4.