Experimental Implementation To Swap External API

Experimentally implement a mechanism to swap external API that depends on the environment.
Experimental Implementation To Swap External API 02

Remove the marker interfaces, ChildApiOperable/ParentApiOperable that represents operable an external API.
Because it was enabled that the type can be selected depends on whether a member typedef is existed.
Remove unnecessary codes and divide files for refactoring

Remove unnecessary codes that are comment outed.
Divide some files for refactoring and add new classes by using them.

CppAnonymNotImplementedException represents the exception that is thrown when a requested method or operation is not implemented.
BaseMethodMetadataProtoB8DF5A21 represents MethodDef/MethodRef in the meta data of CLI.
AssemblyQueryTypes/CallingConventions/TypeKinds are enumerations. They provide type safety enumerations by using the class, SafeEnum.
DefaultHash/DefaultEqualTo are assumed to be used with Boost.Unordered. By using a template specialization, they provide default feature for hash value computing and equivalent comparison.
Merge classes that swaps external API

Merge classes, ParentApiOrDefault/ChildApiOrDefault to one file, ExternalApiStrategies.h.
Because they must be used together.

ParentApiOrDefault.h and ChildApiOrDefault.h are removed, so in some files used them, modify the included headers.
Organize namespace and add tests

Add the pattern to get a method information from the meta data that represents a type.
On the above action, create a new namespace, Urasandesu::CppAnonym::Collections. Because a certain whole processes are being fixed up.
RapidVector/GlobalSafeDictionary are moved to the namespace.
Refactoring and fix typos

Move the utility classes that were defined in BaseTypeMetadataProtoB8DF5A21.h to Iterable.h, DefaultEqualTo.h and DefaultHash.h.
Fix typos that were made on the identifier of include guard
Add basic Strong Naming API wrapper

First, add the basic API wrapper class, BaseStrongNameKeyProto4236D495 that generates a public key token from a public key.
Divide the file for refactoring, and add test

Divide the file, BaseStrongNameInfoProto4236D495.h to BaseStrongNameKeyProto4236D495.h for refactoring.
And add some test cases to validate it.
Add a mechanism to be able to trace related objects

Add a mechanism to be able to trace related objects such as BaseAssemblyMetadataProtoB8DF5A21(child object) => BaseMetadataDispenserProtoB8DF5A21(parent object), BaseRuntimeHostProto07F03042(parent object) => BaseStrongNameInfoProto4236D495(unique child object), and so on.
However, I should organize theirs dependency for header files in test cases after this. Because they are too complex.
Organize dependency, add new utilities

Modify the test case, BaseAssemblyMetadataProtoB8DF5A21Test.cpp that has too complex dependency between the header files at previous commit.
I completed reducing 7 #include header files from the above file by organizing the dependency.
At the modification, add some utilities. I plan to divide them to some refactored files at next commit.
Add new features

RemoveConst removes const modifier from designated type.
AnyPointer is made by reference to Boost.Any. It holds any pointer with type safety, heap management, and so on.