Draft for component based inventory api

Draft for discussion.

Component based Inventory system:
http://forums.spongepowered.org/t/dev-inventoryapi/2341
http://issues.spongepowered.org/youtrack/issue/SPONGE-33
https://docs.google.com/spreadsheets/d/1ZnUzTnpvGxlIWt2tABnG6DbJX4qsfccRZ7NdTTJ6FIU/edit#gid=2055793859

* Inventories are GameObjects, here InventoryViews
* Each View has InventoryComponents (InventoryParts), like CraftingGrid, Hotbar ...
* InventorySystem manage the GameObjects/InventoryViews
* Components are data holder 
 * have only delegate methods to the InventorySystem
* Support mod Inventories (over Modded Component)
* Abstract SlotType for non index access
* raw slot index support

names are not final
* Slot/SlotType
* InventoryView/GameObjectInventory/InventoryParent
* InventoryComponent/InventoryPart
* nextFreeAirSlot/nextFreeSlot/nextEmptySlot
No return type; also: Why does this return a boolean? `True` if it succeeded and `false` if it couldnt add the stack, parts of the stack or does it just fail? Maybe return an ItemStack that contains the rest of the stack contents or `null` if everything fit. This would require a `@Nullable` annotation then though!