Add support for lazy initializated types

Resolves #331.
Here's another alternative, with a private static method, using binding flags:

```c#
    return this
        .GetType()
        .GetMethod(
            "CreateLazy",
            BindingFlags.NonPublic | BindingFlags.Static)
        .MakeGenericMethod(t.GetGenericArguments())
        .Invoke(null, new[] { context });
}

private static Lazy<T> CreateLazy<T>(ISpecimenContext context)
{
    var f = (Func<T>)context.Resolve(typeof(Func<T>));
    return new Lazy<T>(f);
}
```