Improved VillagerAPI

Changed VillagerAPI to match the LivingEntityAPI.

**PR Breakdown:**
* Added some javadocs 
* ````getName()```` methods
* Changed API design to match LivingEntityAPI
I followed the standard used in the living meta factory.
The factory returns null values and the util classes like Careers wrap them in an optional.
In this impl the factory is not accessible for common plugins.