Add support for lazy initializated types

Resolves #331.
(It has to be public though, otherwise we need to use binding flags in Reflection code.)