Made AbstractLicenseValidator implement IDisposable

Not sure what "fancy-word"-principle this seems to break but essentially every time you instantiate the AbstractLicenseValidator it would create a timer thread which would never be removed until the garbage collector did its job. This is a very strange behavior because it forces us to call DisableFutureChecks as if it was a dispose method. This opens up the license validator to be used in bigger server environments.