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
As I know, other plugins can cancel inventory events... So, it may get cancelled from event.