Searching for the best way to dynamically load and unload assemblies in .NET Framework - C#