Make PrivmsgEvent.channel return a User instance if applicable.

Basically if the message received is from a query for instance, TriggerEvent.channel will be an instance of bones.event.User
Make protocol optional for the URL fetchers.