How do individuals set who they 'trust' to ensure that accounts remain active and the flow of debts remains valid?
Ripple has a "TrustSet" transaction that does exactly this. Other than XRP, Ripple does not permit an account to hold an asset it has not agreed to hold.
Account holders can drop their trust to zero at any time. This will prevent them receiving any more of an asset they no longer trust. They can also sell off whatever of the asset they hold, assuming it still has value.
While there can certainly be benefits from taking on risk, you can use Ripple in a completely risk-minimizing way. Just limit your trust to gateways you can enforce a legal claim against.
How does the system respond if a user goes bankrupt and becomes unable to pay any debts that he has?
The system itself doesn't presume that assets have any particular value. There is no problem with worthless assets existing in the system because there is no way to get such an asset to someone who didn't agree to take it.
Like most other payment systems, Ripple only controls what goes on inside itself. It can't compel people to do things outside of the system.
The risk-averse way to protect yourself from this is to trust only reliable gateways. The more adventurous way to do it is to trust only people whose Ripple network has value in such a way that they can't betray your trust without giving up their Ripple network. This is the basis of community credit, which really isn't ready for prime time just yet.
What happens in the situation where there is no line between the sender and the receiver of money or where there is no Gateway that the receiver can use to redeem money?
You can send anyone XRP. However, to send any other asset to someone, they must agree to hold it. If someone has not agreed to hold any asset denominated in US dollars, then you simply cannot pay them US dollars. If they have agreed to hold any reasonably liquid asset denominated in US dollars and you hold any reasonably liquid asset in any currency, Ripple's pathfinding engine can find a path to make the payment work. Users do not need to have gateways in common to pay each other.