Fix factories to generate unique SKUs

* Choosing random SKUs even from a high range can yield duplicates
  resulting in build failures.
* Kernel.rand(9999) was definitively never a good choice due the
  birthday paradoxon lets manifest a duplicate quite often
* Uses sequencially generated SKUs defined from a single shared and
  reusable generator.