Add ItemsStack interface, without any Inventory

Because of the debate with inventory formats (pr #9), I've moved the `ItemStack`
to a separate PR so that we can get this merged sooner, and continue
with interfaces that depend on this.
Why not have a `fillWithStack(ItemStack)` method in the inventories? And possibly a `putItems(Item, int)` for that as well?