Change the way items are sorted to support enchant

ments, durability and things that are linked with the ItemStack. To do that, we keep a copy of the ItemStacks during the process to ensure no loss of data.

It also changes how the plugin handles ItemStacks larger than the MaxStackSize: larger ItemStacks won't be split into multiple stacks. By changing this, we fix an error that would occur (not tested) if the items are a lot larger by causing the contents[] array to be larger than the menu.