make multi-display more real

- displays are represented by a binder on the client side
- c++ clients can now create and modify displays

Change-Id: I203ea5b4beae0819d742ec5171c27568f4e8354b
diff --git a/libs/gui/LayerState.cpp b/libs/gui/LayerState.cpp
index 25c773c..07f62c4 100644
--- a/libs/gui/LayerState.cpp
+++ b/libs/gui/LayerState.cpp
@@ -72,8 +72,9 @@
 
 
 status_t DisplayState::write(Parcel& output) const {
+    output.writeStrongBinder(token);
     output.writeStrongBinder(surface->asBinder());
-    output.writeInt32(displayId);
+    output.writeInt32(what);
     output.writeInt32(layerStack);
     output.writeInt32(orientation);
     memcpy(output.writeInplace(sizeof(Rect)), &viewport, sizeof(Rect));
@@ -82,8 +83,9 @@
 }
 
 status_t DisplayState::read(const Parcel& input) {
+    token = input.readStrongBinder();
     surface = interface_cast<ISurfaceTexture>(input.readStrongBinder());
-    displayId = input.readInt32();
+    what = input.readInt32();
     layerStack = input.readInt32();
     orientation = input.readInt32();
     memcpy(&viewport, input.readInplace(sizeof(Rect)), sizeof(Rect));