Own classes for all windows and implemented vanilla-like shift click.

Fixes #1669 and #1482
Does it modify `a_ItemStack` even when `a_ShouldApply` is `false`? Then what's `a_ShouldApply` for?