Are they on the lease? Do you need them to pay rent to make yours?

If your answers is no to both of those - tell them to leave. You really shouldn't have someone that isn't on your lease living there anyways - you are just asking for trouble because if something goes really wrong they can just vamoose and you will be stuck with the consequences.

You did them a favor and they took you for granted - tell them that you really feel that they have lived there long enough and that you'd like them to find their own place. I'm not sure the situation with a landlord, but if you don't want to tell them directly tell them the landlord said that they have to go because they aren't on the lease.

I honestly can't understand with all the horrible things they are doing that you described why you would be worried about offending them or anything like that - they obviously don't care about your preferences or what you want.

Best of luck.