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.