Fixed #23338 -- Added warning when unique=True on ForeigKey

This PR is similar to #3196 but with the tests and the updated documentation as requested.
*Setting unique=True on a ForeignKey has the same effect as using a OneToOneField.* might be misleading since it also changes the way we access that model from the foreign model (using `foreign_instance.foo` vs `foreign_instance.foos[0]`), which might require further work.