Added checks for unsupported base constructor calls

The new InvalidConstructorInvocation exception is thrown when you call
a constructor of a base class which takes arguments. This is in general not
supported since setting properties usually results in virtual methods being
invoked, and those virtual methods may be override in subclasses that have
not been yet initialized.
Added RoundRectangle drawing method
Added overload for Color.WithIncreasedContrast