Add get_attributes method to products.Product

The method returns the filtered by active=True ProductAttributes for a
given Product, sorted by their sort_order.
Add tests for products.Product

For the get_attributes() and is_variant() methods.
PEP8 fixes.
Add apps.images.AbstractImage model.

An abstract model with GenericRelation to apps.images.models.Image that
can be inherited from to get reverse lookup attribute to the
aformentioned model.
Use AbstractImage for models that need images
Add clean_attribute() method to ProductAttributeAdminForm

Make sure that an Attribute cannot be added to the same Product twice.