Added new method Instance<T> capable of generating both primitive types and interfaces

Previously there were two methods - InstanceOf<T> for interfaces (that
had the constraint T : class) and ValueOf<T> that did not have this
constraint. Now there's single method Instance<T> that handles both.