swarm: Added punycode support to URLs

Added normal percent encoding/decoding for path and fragment parts
Added new dependency - libidn