This reduces the text output when an error is hit, removing the tracebacks for known errors. Tracebacks are for unknown/unexpected errors - if you expect an error, it's better to print out an actual error message. I've also made the patch applying a bit more verbose in case it helps, as it sometimes does.

Example after the changes:

```
Building the following packages: yt
[1/1] (thread 1) building yt
Error building yt. Printing build logs.
Hmm...  Looks like a unified diff to me...
The text leading up to this was:
--------------------------
|diff --git a/setupext.py b/setupext.py
|index 92c456bab..ce2c5fbad 100644
|--- a/setupext.py
|+++ b/setupext.py
--------------------------
patching file setupext.py
Using Plan A...
Hunk #1 FAILED at 57.
1 out of 1 hunk FAILED -- saving rejects to file setupext.py.rej
done
[2022-03-02 17:35:58] Building package yt...
ERROR: Patch /src/packages/yt/patches/skip-openmp.patch failed
[2022-03-02 17:36:14] Succeeded building package yt in 16.5 seconds.
ERROR: cancelling buildall
[1/1] (thread 1) failed yt in 16.76 s
make[1]: *** [Makefile:12: all] Error 1
make[1]: Leaving directory '/src/packages'
make: *** [Makefile:187: build/packages.json] Error 2
```

fix: better error messages, fewer tracebacks. This reduces the text output when an error is hit, removing the tracebacks for known errors. Tracebacks are for unknown/unexpected errors - if you expect an error, it's better to print out an actual error message. I've also made the patch applying a bit more verbose in case it helps, as it sometimes does.

Example after the changes:

```
Building the following packages: yt
[1/1] (thread 1) building yt
Error building yt. Printing build logs.
Hmm...  Looks like a unified diff to me...
The text leading up to this was:
--------------------------
|diff --git a/setupext.py b/setupext.py
|index 92c456bab..ce2c5fbad 100644
|--- a/setupext.py
|+++ b/setupext.py
--------------------------
patching file setupext.py
Using Plan A...
Hunk #1 FAILED at 57.
1 out of 1 hunk FAILED -- saving rejects to file setupext.py.rej
done
[2022-03-02 17:35:58] Building package yt...
ERROR: Patch /src/packages/yt/patches/skip-openmp.patch failed
[2022-03-02 17:36:14] Succeeded building package yt in 16.5 seconds.
ERROR: cancelling buildall
[1/1] (thread 1) failed yt in 16.76 s
make[1]: *** [Makefile:12: all] Error 1
make[1]: Leaving directory '/src/packages'
make: *** [Makefile:187: build/packages.json] Error 2
```

from pyodide_build.testing import run_in_pyodide


@run_in_pyodide(standalone=True, packages=["msgpack"])
def test_pack():
    from msgpack import Packer, Unpacker, pack, packb, unpackb  # noqa: F401

    def check(data, use_list=False):
        re = unpackb(packb(data), use_list=use_list, strict_map_key=False)
        assert re == data

    test_data = [
        0,
        1,
        127,
        128,
        255,
        256,
        65535,
        65536,
        4294967295,
        4294967296,
        -1,
        -32,
        -33,
        -128,
        -129,
        -32768,
        -32769,
        -4294967296,
        -4294967297,
        1.0,
        b"",
        b"a",
        b"a" * 31,
        b"a" * 32,
        None,
        True,
        False,
        (),
        ((),),
        ((), None),
        {None: 0},
        (1 << 23),
    ]
    for td in test_data:
        check(td)

from pyodide_build.testing import run_in_pyodide


@run_in_pyodide(standalone=True, packages=["msgpack"])
def test_pack():
    from msgpack import Packer, Unpacker, pack, packb, unpackb  # noqa: F401

    def check(data, use_list=False):
        re = unpackb(packb(data), use_list=use_list, strict_map_key=False)
        assert re == data

    test_data = [
        0,
        1,
        127,
        128,
        255,
        256,
        65535,
        65536,
        4294967295,
        4294967296,
        -1,
        -32,
        -33,
        -128,
        -129,
        -32768,
        -32769,
        -4294967296,
        -4294967297,
        1.0,
        b"",
        b"a",
        b"a" * 31,
        b"a" * 32,
        None,
        True,
        False,
        (),
        ((),),
        ((), None),
        {None: 0},
        (1 << 23),
    ]
    for td in test_data:
        check(td)
