Introduce both Websocket and plain ReadWriteCloser BESessions

The only difference is that websocket BESessions can be augmented with
extra fields so that it's easier to use Websocket constructs (like the
Protocol header).

Keep around the current BESessions as they are useful for testing.