Refactored the IAdapterService interface so that it now has an Adapt<TSource> method (and there's a corresponding global extension method) which is then used to adapt As<T>. This allows the caller to specify the source type, which is helpful in guiding the probing mechanism to the right type of adapter to look for, which is especially important for COM objects which are otherwise opaque (System.Type-wise).