Use an anonymous function to log into the server.

This helps us keep moving I/O tasks into their own goroutines while
also ensuring that login commands can't preempt each other.
Add a setIcon() function, and a temporary icon for testing.