repayBorrow() with cToken

I took a first pass at implementing this and didn’t run into any major issues or questions. Since the function is essentially a concatenation of redeemFresh() and repayBorrowFresh(), there is a lot of repeated code. But I suspect it’s not worth the additional complexity to refactor it in a way where that code is shared.

I agree with @pyggie–it seems natural to also include a function for liquidation with cTokens. I haven’t written this yet but I’ll do so soon.

Now @aklamun you make a very good point. The Comptroller uses a fixed value of $1 for USDT, USDC, and TUSD, which could lead to many problems. I think your idea to switch them to floating oracles is so good that I made a separate thread for it.