Move validation of postcode into Model.clean()

From @skyjur suggestion in issue #748:

For a framework to rise ValidationError in def save() is a very bad
idea. If there are any forms, which don't do validation properly you'll
get 500 errors.

This is how things usually goes in views:

   if form.is_valid(): # <-- No proper validation here
             form.save()  # <-- Oops, non caught ValidationError here