handle no-names more efficiently
don't allow empty nicks
fix potential segfault
add valid nick function