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()
Making Career mutable would mean having the ability to change the profession a career belongs in to the client, and for the client to understand that. As well, I'd like not to provide ways for plugins to entirely screw up trading stuff (since the underlying villager implementation relies on the index/id of a profession and career to select the MerchantRecipes they can add to their list to offer to players).