implemented and tested proper relation attributes

Closes #54

Extraneous attributes on Relations will cause validation to fail.  At the moment this differs from behavior elsewhere in the API where bad input is ignored early on during deserialization.

Further changes/modifications to Relation attributes should be opened as separate issues.