simplified url checking

Should be logically equivalent.
Simplified has_bad_scheme, and modified has_good_scheme to mirror

I think it's easier to read this way, but if anyone disagrees I can scrap it.