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.c b/icd/intel/cmd.c
index 4d38da3..47f8629 100644
--- a/icd/intel/cmd.c
+++ b/icd/intel/cmd.c
@@ -82,6 +82,8 @@
 {
     static const char *writer_names[INTEL_CMD_WRITER_COUNT] = {
         [INTEL_CMD_WRITER_BATCH] = "batch",
+        [INTEL_CMD_WRITER_SURFACE] = "surface",
+        [INTEL_CMD_WRITER_STATE] = "state",
         [INTEL_CMD_WRITER_INSTRUCTION] = "instruction",
     };
 
@@ -350,7 +352,8 @@
             divider *= 4;
 
         cmd->writers[INTEL_CMD_WRITER_BATCH].size = size / divider;
-        cmd->writers[INTEL_CMD_WRITER_STATE].size = size / divider;
+        cmd->writers[INTEL_CMD_WRITER_SURFACE].size = size / divider / 2;
+        cmd->writers[INTEL_CMD_WRITER_STATE].size = size / divider / 2;
         cmd->writers[INTEL_CMD_WRITER_INSTRUCTION].size = 16384 / divider;
     }