Add support for lazy initializated types

Resolves #331.
Hm... None of the alternatives make Code Analysis happy:

* With the public static method, Code Analysis complains because it doesn't have XML comments
* With the private static method, Code Analysis complains again, because it doesn't have any callers (other than Reflection code).

So, we could probably leave this as-is (as a public method inside a private nested class) where the build script runs without warnings.