Unwrap promises when setting a belongsTo

Still needs several tests for lots of crazy cases.
See below, there is an assert