verbose_name handling for the HistoricalRecord model

The user can set the name for the model, or if the verbose_name is set
for the original model, that will be used as a base for the
HistoricalRecord model.

The motivation for this is that the auth_permission table has a maximum
length of 50 - see https://code.djangoproject.com/ticket/17763

We had a class with a long name - prepending "Historical" to the class
name meant that the name of the permission was over 50 characters long.

With these changes, we will be able to set a shorter verbose_name and
hence workaround the above bug.