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()
- [x] getHunger(), setHunger(), getSaturation(), setSaturation()
- [x] isUsingCraftingTable()
- [x] getOpenInventory()

__Other__
- [x] Non-mob entities (Items, Armour Stands, Paintings) (#94)
- [x] hostile mobs
- [x] friendly mobs
- [x] villager trades?
- [x] neutral mobs (Zombie Pigmen, Endermen, Wolves)
- [x] ambient mobs (Bats) (#72)
- [x] Entity naming (#45)

__Entities__
- [x] setSize(), getXZSize(), getHeight()
- [x] getScale(), setScale()
- [x] getMaxHealth(), setMaxHealth()

__Merchants__
- [x] getCustomer(), setCustomer()
- [x] 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__
- [x] getFirstBuyingItem()
- [x] getSecondBuyingItem()
- [x] getSellingItem()
- [x] getMaxUses()
- [x] getUses()