Allow agent to be set through options

This allows ws to be used with already open sockets by writing a custom agent.