Improved VillagerAPI

Changed VillagerAPI to match the LivingEntityAPI.

**PR Breakdown:**
* Added some javadocs 
* ````getName()```` methods
* Changed API design to match LivingEntityAPI
I would like to specify the behaviour for null values.
Should it throw an error if null is given as param?