Enhanced SocketAppender.

- extends UnsynchronizedAppenderBase instead of AppenderBase
- replaced most synchronized sections with AtomicReference
- only small synchronized section around ObjectOutputStream while event is written.
- removed InetAddress member so it is recreated every time it is used. This is necessary so a network change is properly picked up.
- added connectionTimeout (10s) member which is used while creating connection to server.
- added additional port number validation (MAX_PORT). Documentation still needs to be added to codes.html.