Adding a true type reconciliation function

This allows a user to pass an AnySharedPointer to a CoreContext, and retrieve an std::type_info corresponding to the unaliased concrete type that is known to that context.  This provides diagnostics utilities to elide the TypeUnifierSimple and TypeUnifierComplex wrapper types in cases where those types are injected.