This fixes two issues:
- values for mutiple header fields with the same name
passed as arrays were converted to string;
- the type of field value wasn't preserved as required
by specification.
- Fixed handling of the "options" parameter in Socket() constructor;
- Now the connect() method returns "this";
- Deduplicated the address() method;
- Added missing "callback" argument to the end() method;
- Now the destroy() method returns "this";
- Added "timeout" argument type check in the setTimeout() method.