bpo-21872: fix lzma library decompresses data incompletely (GH-14048)


* 1. add test case with wrong behavior
* 2. fix bug when max_length == -1
* 3. allow b"" as valid input data for decompress_buf()
* 4. when max_length >= 0, let needs_input mechanism works
* add more asserts to test case
(cherry picked from commit 4ffd05d7ec47cfd0d7fc95dce851633be9663255)

Co-authored-by: animalize <animalize@users.noreply.github.com>
3 files changed