Drop TAGMSG in detached channels

- Do not relay TAGMSG as notices,
- Do not reattach when a TAGMSG is received,
- Do not reset the detach timer when a TAGMSG is received.
readme: mention Makefile, assume soju is installed system-wide
sojuctl: don't use log.Fatalf in readPassword
Add user prefix to upstream logger
Add per-network logger
Error out on network name conflict

Closes: https://todo.sr.ht/~emersion/soju/29
Relay detached channel backlog as BouncerServ NOTICE if necessary

Instead of ignoring detached channels wehn replaying backlog,
process them as usual and relay messages as BouncerServ NOTICEs
if necessary. Advance the delivery receipts as if the channel was

Closes: https://todo.sr.ht/~emersion/soju/98
Move isHighlight to irc.go
Store last internal msg ID in DB when detaching

References: https://todo.sr.ht/~emersion/soju/98
Skip backlog logic in downstreamConn.welcome on chathistory
Take msg ID in sendTargetBacklog
Panic on unknown user event type

This should never happen. Complain loudly if it does.
Introduce per-user logger

Adds the username to log lines.
Make casemapping work over bytes instead of runes

Fixes a panic in partialCasemap when the input string was invalid UTF-8.
cmd/soju: allow specifying -listen multiple times

Closes: https://todo.sr.ht/~emersion/soju/67
Update dependencies
Save delivery receipts in DB

This avoids loosing history on restart for clients that don't
support chathistory.

Closes: https://todo.sr.ht/~emersion/soju/80
Use BARE for internal message IDs

This allows to have shorter and more future-proof IDs. This also
guarantees the IDs will only use reasonable ASCII characters (no
spaces), removing the need to encode them for PING/PONG tokens.
Rename user.clients to clientNames

This doesn't contain anything other than just the names. Make this
Make NickServ detection casemapping-aware