Change websocket_client:start_link to be more OTP and convenient

Hi.
This patch has several simple, but important changes.

1) Use http_uri:parse to specify protocol, port, path, etc. It is much more convenient than passing 6 options by hands
2) Use only one start_link function and URL must be the first parameter, because it is more logical that module and args goes together
3) Return {ok,Pid} or {error, Error} from start_link. It is an erlang protocol that start_link function return tuples, not just pid
4) Use proc_lib because it enables logging and enhances start procedure