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.
I agree from a strict representational side, but from a developer side, it's been too easy to rely on how Bukkit handled this. The only way to fill an inventory with stone, is to build 36 different `ItemStack`s. Whether it was by design or not, it's been useful to 

```ItemStack stone = new ItemStack( Material.STONE );
stone.setAmount(2304);```

though I agree it's relying on a bad design