Big refactor of the tuner detection code to make it more manageable and less error prone. This change also makes it possible for tuner detection to be extensible in future (by opening a plugin interface for ITunerDetectorUpnp and/or ITunerDetectorSystem) if we want it to be.
All code in the TV library except TunerDetector should be internal.
Fix/remove error in log files when unloading tuners that haven't been loaded.
RTL283x:
1. Fix deadlock on tuner unload.
2. Fix deadlock on graph job with exception.
3. Dispose the main tuner device.