fixes #143: automatic validation should validate primary key

automatic validation should be validating that a primary key is
of the right data type, however it should also allow:

  * the primary key is not present or set on the model
  * the primary key is present or set on the model, however it is
    a blank or emtpy value