Don't automatically collapse `''` and `None` for keys.

Ticket #19299 which I forgot to send this for.

Many databases treat these differently, including MySQL, and there are
legitimate cases where `''` is a valid value in key fields. This change
updates both the ForeignKey class and the row cache to check the
connection feature `interprets_empty_strings_as_nulls` and will collapse
these two values if that's `True`, otherwise it will treat them
differently.