Function liquidate
This function is called in order to liquidate a user's assets. Liquidate in this context means repaying a portion of the user's debt in exchange for an equal value amount of the collateral, plus a bonus for the liquidator.
At most a fifth of the user's debts may be liquidated in a single call. Any excess value is returned to the user.
The maximum amount repaid is also bounded by the amount of assets available as collateral to give to the liquidator.