Built in closure functionality

Made protocol declarations optional and built in closure functionality for convenience.

Now a call can be made as follows...

self.socket = WebSocket(url: NSURL(scheme: "ws", host: "someURL.com", path: "/Echo")!, connect: {
            println("connected")
            self.socket!.writeString("Hello, World!")
        }, disconnect: {
            println("disconnected")
        }, text: { (textReceived) in
            println("received data: \(textReceived)")
        })

I have also created a few more convenience initializers in case you might not need the data or failure events.

Thank you so much for this great code base!