It is common that the P2P software use most of the bandwidth. Using P2P is fine, but blocking them or making them slow is also just fine if they use too much bandwith.
My suggestions (I use a TP-Link TL-WR940N router) on blocking/limiting the P2P usage.
First, try to educate your roommates and ask them to limit their downloading speed. Most p2p software can limit the download speed.
Second, if the first action does not work, you may try to block the usage of ports of the remote servers/nodes except the common ones such HTTP, HTTPS, SMTP, email and etc. Most commonly used ports are under 1024. You can start by blocking ports 1024~65534. And later, you can add rules to allow certain ports, such as 9418 for git, for certain applications.
Here are the settings on my router.
The Host (source) rule used:
The Target (external address/ports/etc) rule used:
Most of the time, blocking these ports is enough for blocking P2P applications and can avoid them from hogging the whole bandwidth.
Third, if the above 2 actions still can not solve the problem. You may consider controlling the bandwidth.
Just an example here.
Enable the bandwidth control:
The detailed rules:
Last, if all above still do not work, consider throwing your roommates out (I am just joking ;) ).