Public vaults can become insolvent because of missing `yIntercept` update
The deduction of `yIntercept` during payments is missing in `beforePayment()` which can lead to vault insolvency.\\n`yIntercept` is declared as "sum of all LienToken amounts" and documented elsewhere as "yIntercept (virtual assets) of a PublicVault". It is used to calculate the total assets of a public vault as: slope.mulDivDown(delta_t, 1) + `yIntercept`.\\nIt is expected to be updated on deposits, payments, withdrawals, liquidations. However, the deduction of `yIntercept` during payments is missing in `beforePayment()`. As noted in the function's Natspec:\\n```\\n /**\\n   * @notice Hook to update the slope and yIntercept of the PublicVault on payment.\\n   * The rate for the LienToken is subtracted from the total slope of the PublicVault, and recalculated in afterPayment().\\n   * @param lienId The ID of the lien.\\n   * @param amount The amount paid off to deduct from the yIntercept of the PublicVault.\\n   */\\n```\\n\\nthe amount of payment should be deducted from `yIntercept` but is missing.
Issue Public vaults can become insolvent because of missing `yIntercept` update\\nUpdate `yIntercept` in `beforePayment()` by the `amount` value.
This missing update will inflate the inferred value of the public vault corresponding to its actual value leading to eventual insolvency because of resulting protocol miscalculations.
```\\n /**\\n   * @notice Hook to update the slope and yIntercept of the PublicVault on payment.\\n   * The rate for the LienToken is subtracted from the total slope of the PublicVault, and recalculated in afterPayment().\\n   * @param lienId The ID of the lien.\\n   * @param amount The amount paid off to deduct from the yIntercept of the PublicVault.\\n   */\\n```\\n