Absorb patches from Brendon Towle, fixing Card.set_due() and adding Card.comment()