AppRTC new signaling model

Server and web client changes for new signaling model. The gist of it is below:

Clients are required to register with GAE before sending messages, and will
receive a client id upon registration. The first client C1 sends all its
signaling messages to GAE. GAE will store the messages if the second client C2
has not registered yet, otherwise GAE will forward the messages to Collider,
which will then deliver the message over C2's websocket connection. When C2
registers it will receive all stored messages from C1. C2 sends all its
signaling messages through Collider. Each GAE registration is matched
with a BYE command to GAE on hangup.
Can we unify the Message and Room datastore, so we do only one read when the second user registers?
E.g.
class Client(db.Model):
  room_id = db.StringProperty
  client_id = db.StringProperty
  messages = db.ListProperty(db.TextProperty())

We don't need a Room class, instead we can get all clients of a room by querying room_id.