[rust png] Add support for `SkCodec::Result::kIncompleteInput`.

Note that to be effective this CL depends on changes to the `png` crate
(which are not yet present in `png-0.17.13`).  Therefore this CL softly
depends on having a post-0.17.13 crate version when building `FFI.rs`:

* In the short-term this dependency is fulfilled by patching the crate
  in https://crrev.com/c/5836023
* In the long-term the following PR should eventually be released in a
  new `png` version on crates.io:
  https://github.com/image-rs/image-png/pull/496

This CL helps to pass the `AnimatedPNGTests.ByteByByteSizeAvailable`
test from `blink_platform_unittests` (after also patching in the `png`
crate changes from https://crrev.com/c/5836023 and WIP Blink integration
from https://crrev.com/c/5786777).  (Other 2 "ByteByByte" tests still
require additional work.)

This CL doesn't have any impact on Chromium or Skia build - it doesn't
depend on any API changes in the `png` crate.  This CL doesn't have any
effect on runtime without the corresponding changes in the `png` crate -
this is because (without the `png` crate) changes there won't be any
`png::DecodingError::IoError`s (because the C++-based implementation of
the `Read` trait is infallible).  All of that makes this CL safe to land
first, before the Chromium CL with `png` crate patches
(https://crrev.com/c/5836023).

Bug: chromium:356923435
Change-Id: Ib948480a294de8aefef67a9f732610404c88f915
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/896876
Reviewed-by: Leon Scroggins <scroggo@google.com>
Commit-Queue: Ɓukasz Anforowicz <lukasza@google.com>
2 files changed