Don't allow negative grams items to put packer in an infinite loop

Currently the shipment packer checks for 0 grams, when passed in items with negative weight this causes us to loop infinitely. This short-circuits negative weights to the item quantity.

#### Review

@garymardell