Allow defining `IREE_HOST_SIZE_T` to other types. (#14040)

I tried redefining these:
```c
// iree/base/config.h

#if !defined(IREE_HOST_SIZE_T)
#define IREE_HOST_SIZE_T size_t
#define PRIhsz "zu"
#endif  // !IREE_HOST_SIZE_T
```
to `uint32_t` and `PRIu32` while debugging some issues with Emscripten
builds, but many parts of the project failed to build.
`IREE_HOST_SIZE_T` should really be set to `size_t` in most/all cases,
but the project should still build if someone wants to redefine it.

Some cases were obviously using the wrong format specifier (e.g. `zu`
instead of `PRIhsz`), but other were more subtle (e.g. interop between
`std::string` with `iree_string_view_t` or using `SIZE_MAX` instead of
`IREE_HOST_SIZE_MAX`). I tried to update as many places as I could
safely.
diff --git a/runtime/bindings/python/vm.cc b/runtime/bindings/python/vm.cc
index 9a3a4fd..c39a374 100644
--- a/runtime/bindings/python/vm.cc
+++ b/runtime/bindings/python/vm.cc
@@ -205,7 +205,8 @@
     const std::string& name, iree_vm_function_linkage_t linkage) {
   iree_vm_function_t f;
   auto status = iree_vm_module_lookup_function_by_name(
-      raw_ptr(), linkage, {name.data(), name.size()}, &f);
+      raw_ptr(), linkage,
+      {name.data(), static_cast<iree_host_size_t>(name.size())}, &f);
   if (iree_status_is_not_found(status)) {
     iree_status_ignore(status);
     return std::nullopt;
@@ -388,7 +389,7 @@
       }
 
       // Extract dims from the buffer view.
-      size_t rank = 0;
+      iree_host_size_t rank = 0;
       std::vector<iree_hal_dim_t> dims(6);
       iree_status_t status = iree_hal_buffer_view_shape(
           buffer_view, dims.capacity(), dims.data(), &rank);