**Impacted versions:**
saas-14

**Steps to reproduce:**
1. create a sale order with a new product named Sprint configured as service, Track Service "Create task and create hours" and link to Internal - GAP Analysis.
2. Confirm the sale order and review
3. Add a new line for sprint in the sale order and try to save the file.

**Current behavior:**
A Odoo Server Error (Validation Error) appears "Error, a partner cannot follow twice the same object"

![image](https://cloud.githubusercontent.com/assets/7593953/23186396/9f050718-f84c-11e6-95c0-af0104c9cdc9.png)

**Expected behavior:**
I want to be able to add more lines to my confirmed sale order

**Video/Screenshot link (optional):**
https://youtu.be/ApXlPrxVISE

I think this is a critical bug. We found out this bug Feb 12, so maybe a change before that date could introduce the bug. 

If if help, I repeat the same poc in a local instance and this is the error capture in my server log
```bash
sale.order(1,).write({
    u'order_line': [[4, 1, False], [0, False, {
        u'procurement_ids': [],
        u'qty_delivered': 0,
        u'product_id': 1,
        u'product_uom': 1,
        u'sequence': 11,
        u'customer_lead': 0,
        u'price_unit': 0,
        u'product_uom_qty': 1,
        u'discount': 0,
        u'state': u'draft',
        u'qty_delivered_updateable': True,
        u'analytic_tag_ids': [],
        u'invoice_status': u'no',
        u'tax_id': [[6, False, [2]]],
        u'layout_category_id': False,
        u'name': u'Sprint'}]]})

2017-02-20 20:05:09,736 1513 INFO openerp_test odoo.sql_db: bad query:
UPDATE "mail_followers"
SET "res_model"='project.task'
WHERE id IN (29, 30) 

ERROR: duplicate key value violates unique constraint "mail_followers_mail_followers_res_partner_res_model_id_uniq"
DETAIL:  Key (res_model, res_id, partner_id)=(project.task, 16, 3) already exists.
```

addons/mail/models/mail_followers.py
""" Invalidate the cache of the documents followed by ``self``. """
        for record in self:
            if record.res_id:
                self.env[record.res_model].invalidate_cache(ids=[record.res_id])
    @api.model
    def create(self, vals):
        res = super(Followers, self).create(vals)
        res._invalidate_documents()
        return res
    @api.multi
    def write(self, vals):
        if 'res_model' in vals or 'res_id' in vals:
            self._invalidate_documents()
        res = super(Followers, self).write(vals)
        self._invalidate_documents()
        return res
    @api.multi
    def unlink(self):
        self._invalidate_documents()
        return super(Followers, self).unlink()
    _sql_constraints = [
        ('mail_followers_res_partner_res_model_id_uniq', 'unique(res_model,res_id,partner_id)', 'Error, a partner cannot follow twice the same object.'),
        ('mail_followers_res_channel_res_model_id_uniq', 'unique(res_model,res_id,channel_id)', 'Error, a channel cannot follow twice the same object.'),
        ('partner_xor_channel', 'CHECK((partner_id IS NULL) != (channel_id IS NULL))', 'Error: A follower must be either a partner or a channel (but not both).')
    ]