Implement the X:Line commands

This PR implements the following commands:
- KLINE
- GLINE
- ZLINE
- ELINE
- QLINE

With the exception of server to server support (which I'll get on once this is reviewed) they are fully functional. I did run into a slight problem with the ZLINE command, where if a Z:Lined user connects, it disconnects them with a broken pipe rather than the actual ban reason. I'm not quite sure how to work around this issue.
This probably applies to all of your "statstypename" functions:

The "statstypename" action takes a type, which is the letter taken by the STATS command and is used to generate an XINFO name.  Your `typeName` in this function will never be more than one letter.  The return value here is correct now.