WebSockets - implementation proposal for issue #125

This implementation is based solely on existing Netty's WebSockets implementation.

Client example:
```java
WebSocketClient<WebSocketFrame> rxClient = RxNetty.newWebSocketClientBuilder("localhost", port)
            .withWebSocketURI("/websocket")
            .withWebSocketVersion(WebSocketVersion.V13)
            .build();

rxClient.connect().flatMap(
    new Func1<ObservableConnection<WebSocketFrame, WebSocketFrame>, Observable<Void>>() {
        ....
    });
```

Server example:
```java
RxServer<WebSocketFrame, WebSocketFrame> server = RxNetty.
        newWebSocketServerBuilder(port, new ConnectionHandler<WebSocketFrame, WebSocketFrame>() {
            @Override
            public Observable<Void> handle(
                final ObservableConnection<WebSocketFrame, WebSocketFrame> newConnection) {
                    ....
                })
    }).build().start();
```

There are two main uses of `SimpleChannelInboundHandler`:

-- Be type aware (only accepts messages of a certain type)
-- Auto release ByteBuf

This code seems to be not using type awareness and the auto release to me sounds unnecessary as we always release the `ByteBuf` in `ObservableAdapter` after invoking the attached `Observer`'s `onNext()`.
So, looks like you can just use `ChannelInboundHandlerAdapter`