Remove duplicate call to create_stock_items from StockLocation
Adjust count on hand for stock items based on variant in stock location factory

Given that stock_location.stock_items is unsorted, the behaviour of calling 'first' and 'last' is effectively random, leading it update the same stock item to have 30 items on hand.

By explicitly defining that we want THIS stock item to be updated with 10 and THIS one with 20, we don't run into that problem.

This is only a problem on MySQL when using InnoDB and on PostgreSQL always.