Prioritize packages properly among multiple location

This creates a AssemblyPriorizer which checks for the right quantity
needed for product parts and properly removes repeated packages
Use OpenStruct to build package content

Help to get rid of initialized constant warning when assign a Struct to
new constant on the package decorator