Unwrap promises when setting a belongsTo

Still needs several tests for lots of crazy cases.
It won't work with anything but a promise proxy, i suspect the check should be geared to that.