Implement method instance cache, this means we don't have to fetch it everytime as this involves getting the plugin instance and using it's ClassLoader to get one of it's classes and then do Reflection from there. This caching solution is faster.
Multiple optimizations added (this is really important considering how often the getName() method is run, especially with certain plugins)
Added extra checks when importing from Essentials, if anything goes wrong, it should become obvious what the issue is from the log
Improved debugging messages
Removed an un-needed Util method that was easily replaced in a better way (can't believe I didn't do this before)