#94 Throw an informative exception when trying to create an abstract type with a public constructor

In order to make in simpler, keep it tidier and because of my git stupidity. I've created another branch with my changes based on the current master and created a new pull request. 

Sorry for causing confusion, hopefully, this will be straightforward now and we can simply close down the other pull request. 

I've ran BuildRelease.ps1 against this and there are no errors generated. 

Sorry again.