Add a method to get the underlying ThreadFactory for use with external libraries

This method was added in the sub-class "Unsafe" in Plugin. This follows the Unsafe pattern used in other parts of the project.

getExecutorService() was also moved into the Unsafe class and the old method simply forwards to the one in the Unsafe class, this prevents plugin breakages.

This PR [here](https://github.com/brettwooldridge/HikariCP/pull/113) (which should hopefully soon be accepted) shows how these new API methods might be used with external libraries. This allows BungeeCord to continue to keep track of threads created by plugins.

One thing I am slightly unsure about is if the shutdown call [here](https://github.com/iKeirNez/BungeeCord/blob/35aea66b14b09b45134a6643837cc7c955843ac4/proxy/src/main/java/net/md_5/bungee/BungeeCord.java#L374) will shutdown threads that are assigned to the same group as that ExecutorService, but weren't created by that ExecutorService.