[IMP] mail: mail_thread: routing: check for exact message_id.

WIP: will be improved, notably about what to do for partial match.
[FIX] mail_message: do not overwrite 'False' message_id when creating a new mail message
[IMP] mail: mail_thread: routing: implement compat-mode routing
It now accepts <111...222..openerp-res_id-model@mydomain.com> partial matching
only if the target record has messages without message_id, aka <= 6.1 record.

Updated and added tests
[MERGE] Sync with trunk
[IMP] [CLEAN] mail: mail_thread: routing
- removed a debug print statement
- now searching all references once instead of each reference one at a time
to lessen the number of queries; as the newest message will be the first
in the search result, it's ok.
[IMP] [FIX] mail: mail_thread: routing: check for exact message_id.

When processing an incoming email, we try to find a parent for the email based on references. Before this merge, it was done using openerp-<model-<res_id> pattern. However it is buggy. Indeed having two OpenERP sending emails to each other leads to messages being inserted in a wrong thread (model and res_id of the first OpenERP for both instances).

Now we search for an exact match between the references and the stored message_ids. As each message_id can be considered as unique the number of collisions is lessened. This won't cause any issues with OpenERP >= 7.0.

A compatibility mode is implemented for <= 6.1: as in those versions the message_id is not stored, we fall back on the previous behavior for records having messages without message_id. This indicates that the record was created before 7.0.

Tests have been updated accordingly, and a test added for the compatibility mode.