Improved VillagerAPI

Changed VillagerAPI to match the LivingEntityAPI.

**PR Breakdown:**
* Added some javadocs 
* ````getName()```` methods
* Changed API design to match LivingEntityAPI
Why no optionals? The whole point of Optionals is to notify the developer that the career is not guaranteed to exist (part of the contributions)