Product variant implementation

Squashed commits:

* Removed hardcoded parameter in url()
* Edit/View variant component
* Controller annotations
* Changed namespace prefix
* Fixed variant and product component controllers
* Added options to Variant form