fix: check uniqueness against deleted objects

Fields uniqueness was check using the filter method of the queryset, which hide the deleted objects. I included the ``_perform_unique_checks`` method of the model and added ``all_with_deleted`` before the ``filter`` call.

Unit tests added, wainting for travis.
More understandable (behaviour unchanged).