intel: allocate a separate surface state bo

Add INTEL_CMD_WRITER_SURFACE to intel_cmd, and write BINDING_TABLE_STATEs and
SURFACE_STATEs to the new writer.  Fix cmd_batch_state_base_address() up for
the separation.
diff --git a/icd/intel/cmd_decode.c b/icd/intel/cmd_decode.c
index 362efc3..0a6c502 100644
--- a/icd/intel/cmd_decode.c
+++ b/icd/intel/cmd_decode.c
@@ -569,8 +569,13 @@
                     writer->bo, writer->used);
         }
         break;
+    case INTEL_CMD_WRITER_SURFACE:
+        fprintf(stderr, "decoding surface state buffer: %d states\n",
+                writer->item_used);
+        cmd_writer_decode_items(cmd, which);
+        break;
     case INTEL_CMD_WRITER_STATE:
-        fprintf(stderr, "decoding state buffer: %d states\n",
+        fprintf(stderr, "decoding dynamic state buffer: %d states\n",
                 writer->item_used);
         cmd_writer_decode_items(cmd, which);
         break;