Added buffering for msgs, fixed command parser bug

- Fixed user<->user error
- Fixed key -> val miss
- Added user lock for thread concurrency
- Moved message.ToCommand() outside loop