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.
Should this throw some exception if the quantity is greater than the max stack quantity?