Impacted versions:
10.0
Steps to reproduce:
1. Create Customer Invoice and Validate
2. Make Payments on Payments screen and confirm
3. Open Manual Payments and Invocies and try to reconcile hitting CTRL-Enter for mass reconciliation

Current behavior:
Odoo server error raised with traceback
File "/home/odoo/runbot/extra/runbot/static/build/188623-10-0-347494/odoo/addons/account/models/account_move.py", line 729, in process_reconciliations
    self.process_reconciliation(datum['mv_line_ids'], datum['new_mv_line_dicts'])
TypeError: process_reconciliation() takes exactly 2 arguments (3 given)

Expected behavior:

Video/Screenshot link (optional):
![image](https://cloud.githubusercontent.com/assets/17149532/21532189/3596954a-cd4e-11e6-94fa-be2195bd9f7b.png)


addons/account/models/account_move.py
date_maturity = fields.Date(string='Due date', index=True, required=True,
        help="This field is used for payable and receivable journal entries. You can put the limit date for the payment of this line.")
    date = fields.Date(related='move_id.date', string='Date', index=True, store=True, copy=False)  
    analytic_line_ids = fields.One2many('account.analytic.line', 'move_id', string='Analytic lines', oldname="analytic_lines")
    tax_ids = fields.Many2many('account.tax', string='Taxes')
    tax_line_id = fields.Many2one('account.tax', string='Originator tax', ondelete='restrict')
    analytic_account_id = fields.Many2one('account.analytic.account', string='Analytic Account')
    analytic_tag_ids = fields.Many2many('account.analytic.tag', string='Analytic tags')
    company_id = fields.Many2one('res.company', related='account_id.company_id', string='Company', store=True)
    counterpart = fields.Char("Counterpart", compute='_get_counterpart', help="Compute the counter part accounts of this journal item for this journal entry. This can be needed in reports.")
    
    invoice_id = fields.Many2one('account.invoice', oldname="invoice")
    partner_id = fields.Many2one('res.partner', string='Partner', ondelete='restrict')
    user_type_id = fields.Many2one('account.account.type', related='account_id.user_type_id', index=True, store=True, oldname="user_type")
    tax_exigible = fields.Boolean(string='Appears in VAT report', default=True,
        help="Technical field used to mark a tax line as exigible in the vat report or not (only exigible journal items are displayed). By default all new journal items are directly exigible, but with the module account_tax_cash_basis, some will become exigible only when the payment is recorded.")
    _sql_constraints = [
        ('credit_debit1', 'CHECK (credit*debit=0)', 'Wrong credit or debit value in accounting entry !'),
        ('credit_debit2', 'CHECK (credit+debit>=0)', 'Wrong credit or debit value in accounting entry !'),
    ]
    @api.multi
    @api.constrains('currency_id', 'account_id')
    def _check_currency(self):
        for line in self:
            if line.account_id.currency_id:
                if not line.currency_id or line.currency_id.id != line.account_id.currency_id.id:
                    raise ValidationError(_('The selected account of your Journal Entry forces to provide a secondary currency. You should remove the secondary currency on the account.'))
    @api.multi
    @api.constrains('currency_id', 'amount_currency')
    def _check_currency_and_amount(self):