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.

* Variant::setOptions should clear the collection before adding it
* Product::removeAttribute() method was also added
* Reverted PHPdoc class name change
Merge pull request #342 from elcodi/fix/variant-add-attribute

Fixed Variant::setOption behavior
depend on TokenInterface instead of UsernamePasswordToken
check for empty users in TokenInterface

As `TokenInterface::getUser` may return `null` (specially `AnonymousToken::getUser` will do that)
extract `getCustomerFromToken`
unit-test User\CustomerWrapper