spin-sdk 3.1.0

The Spin Rust SDK makes it easy to build Spin components in Rust.
Documentation
# Cutting a new release of the Spin Rust SDK

To cut a new release, you will need to do the following:

1. Confirm that [CI is green]https://github.com/fermyon/spin-rust-sdk/actions for the commit selected to be tagged and released.

2. Change the workspace version number in [Cargo.toml]./Cargo.toml and the versions for any dependencies that are part of this workspace (e.g. `spin-macro`).

3. Create a pull request with these changes and merge once approved.

4. Checkout the commit with the version bump from above.

5. Create and push a new tag with a `v` and then the version number.

    As an example, via the `git` CLI:

    ```
    # Create a GPG-signed and annotated tag
    git tag -s -m "Spin Rust SDK v3.1.0" v3.1.0

    # Push the tag to the remote corresponding to fermyon/spin-rust-sdk (here 'origin')
    git push origin v3.1.0
    ```

6. Pushing the tag upstream will trigger the [release action]https://github.com/fermyon/spin-rust-sdk/actions/workflows/release.yml which publishes the crates in this workspace to `crates.io`

7. If applicable, create PR(s) or coordinate [documentation]https://github.com/fermyon/developer needs, e.g. for new features or updated functionality.