Entities API

This PR represents the progress in adding all entities to Sponge. Ideally the end result should mirror the MC Source, Forge, and the Bukkit API in functionality.

__Players__
- [x] OfflinePlayer/OnlinePlayer duality (#131)
- [x] also in (#72)
- [x] getHealth(), setHealth()
- [x] getPosition(), setPosition()
- [x] getMaxHealth(), setMaxHealth()
- [ ] getHunger(), setHunger(), getSaturation(), setSaturation()
- [ ] isUsingCraftingTable()
- [ ] getOpenInventory()

__Other__
- [ ] Non-mob entities (Items, Armour Stands, Paintings) (#94)
- [x] hostile mobs
- [x] friendly mobs
- [ ] villager trades?
- [ ] neutral mobs (Zombie Pigmen, Endermen, Wolves)
- [x] ambient mobs (Bats) (#72)
- [ ] Entity naming (#45)

__Entities__
- [x] setSize(), getXZSize(), getHeight()
- [x] getScale(), setScale()
- [x] getMaxHealth(), setMaxHealth()

__Merchants__
- [x] getCustomer(), setCustomer()
- [ ] getTradeOffers(), setTradeOffers()

__Tameable__
- [x] isTamed(), setTamed()
- [x] getOwner(), setOwner()

__Tamer__
- [x] getName()

__Ageable__
- [x] getAge(), setAge()
- [x] isBaby(), setBaby()
- [x] isAdult(), setAdult()
- [x] canBreed(), setBreeding()
- [x] setScaleForAge()

__Villager__
- [x] getProfession(), setProfession()
- [x] isPlaying()
- [x] isTrading()

__Bat__
- [x] isAwake(), setAwake()

__Skeleton__
- [x] getSkeletonType(), setSkeletonType()

__Slime__
- [x] getSize(), setSize()

__TradeOffer__
- [ ] getFirstBuyingItem()
- [ ] getSecondBuyingItem()
- [ ] getSellingItem()
- [ ] getMaxUses()
- [ ] getUses()
Is there a special reason for returning a ````List````?

From the functionalities point of view it is a ````Set```` or more general a ````Collection````.
I cannot thing of reason why you would use a ````List```` with an index for that.