Colored variants as separated products

Referring to Patrys's suggestions I implemented color-based variants. So all colors of the same product should be added as separated products, with the same 'collection' value.
Collection field is implemented as separated model.
This code is only proof of concept so it needs couple of improvements before merge (mainly frontend and forms). 
I think that we should move classes from products/models.py to separated files (eg. models/products.py, models/discount.py etc), to keep our code easier to read.