User.get_preferences must return a copy

preferences is stored in the cache but as it is a mutable object, we must
return a copy to prevent cache corruption.

issue3442
review1351002
Add relation_field for many2one

issue3173
review1201002
Fallback to data model in Report

review1221002