Raising proper execeptions when validating data.

Problems related to validation errors will only raise a ValidationError
now. Validation also got tighter, now also validating initial data
passed along the constructor.