Expand description

This exists as a separate crate to work around cargo being unable to conditionally compile crate-types.

This leads to problems like emscripten being unable to link because symbols like log_js are not defined even if the crate_type is not actually desired. As a workaround, the icu_capi_staticlib and icu_capi_cdylib crates exist as endpoints to be built when those respective library types are needed.