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 executor service [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 the ExecutorService, but weren't created by that ExecutorService.