Add safeguards to association data not being entities.
Add tests for HasOne & BelongsTo saving.

Association save methods should not save data that is not an entity.
Instead that data should be skipped.
Add tests for BelongsToMany and HasMany saving.

Associations should not save non-entity values as they assume that all
meaningful data has been converted into entities by this point.

This prevents fatal errors, and accidentally saving un-marshalled
associations that were not explictly converted into entities.
Don't try to recover from inconsistent data.

If an association property contains a mix of arrays + entities stop as
soon as a non-entity value is found. This makes saving consistent with
validation.
Merge pull request #2540 from markstory/3.0-safer-save

3.0 association save improvements