[Bug Fix][Product] Product setMasterVariant is broken

When you have a `Variant` in your product that has `isMaster` set to `true` and you add a new `Variant` through `setMasterVariant($anotherVariant)` it will fail. You end up with two Variants that have `isMaster` set to true and `getMasterVariant` would not return the correct Variant.

I tried to make a good test for this use case, but I failed somehow. See this screenshot:
![](http://puu.sh/cHGLp/d1b9b91593.png)

I am trying to test that when you set the new variant ($secondVariant) trough `setMasterVariant` it actually is the variant that will be returned when you call `getMasterVariant`. Why is this failing, I think you guys know why, maybe I am just to tired now and I don't see it, aaaaah..

**SIDE NOTE:** Another option would be to prevent the user from changing an existing master variant. It would then throw an exception saying that you need to remove the masterVariant first before you can set another one. This would prevent unexpected behaviour, as in my first example: it would just make the master variant a normal variant. @pjedrzejewski What do you think about this?