(bug 43304) Refactoring of Snakview variations registration

Makes the variation system of the snakview a jQuery Widget factory like system. Allows for shorter code in variation definitions and allows to extract some required information from the now required Snak constructor which has to be given when registering a new variation.

Change-Id: I0534ec7a2d8e6c4e9f1f1774166865f985c4bdab