Consider custom Oscar user models in test cases

From `AbstractUser` model in Oscar (`oscar.apps.customer.abstract_models`):

> This is basically a copy of the core AbstractUser model but without a username field

The problem is, most test cases only consider the default Django user model that contains the username field. As soon as you extend Oscar's AbstractUser model that doesn't contain a username field, tests that use `ClientTestCase` or `WebTestCase` fail.
This PR fixes this problem by making the username optional.