Now unbundles exceptions from creating instances

Hi,

I have made a change to the `CreateInstance` method as I usually write tests for capturing exceptions in my constructors. Without this change, the exceptions are swallowed inside the call to `Activator.CreateInstance` and are wrapped inside a `TargetInvocationException`. This means that you cannot test the exception as easily as doing your usual `Assert.Throws(...)` method call.

Let me know what you think.

Ed