Fixed Variant::setOption behavior

When setting a Collection of options to a `Variant`, each Option should be
added separately using the `Variant::addOption()` method, which will also
update the parent Product `Attribute` collection.

`Product::removeAttribute()` method was also added
The only reason is not to depend on the `ArrayCollection` dependency