Brings fledge-fiber to parity with amphp/mysql 3.x post-#142. The
existing code already swapped LongBlob for VarString as the default
string encoding (PR #142 iteration 1), but lacked the follow-up that
routes blob-target columns back through LongBlob (iteration 2).
Without this, a string parameter bound against a TinyBlob/Blob/
MediumBlob/LongBlob column is sent as VarString, which carries
connection-charset semantics; on a utf8mb4 connection, non-UTF8
binary payloads (raw bytes, gzip, encrypted) can trip
"Incorrect string value" or be silently transcoded.
Since fledge-fiber is PHP 8.5 only and MysqlEncodedValue is /** @internal */
with a single caller (ConnectionProcessor), this collapses the previous
two-method API (fromValue + fromJson) into one entry point:
MysqlEncodedValue::fromValue(mixed $param, ?MysqlDataType $targetType = null)
with a stringTypeFor() helper that centralises the column-type decision
for both the prebound and non-prebound branches in ConnectionProcessor.
The body uses match expressions throughout and normalises BackedEnum +
Stringable at the top so the dispatch only deals with primitives.
Adds tests/Fledge/database/Unit/MysqlEncodedValueTest.php covering the
type-selection table, integer width selection, bool/float encoding, the
Stringable/BackedEnum normalisation paths, and TypeError on unsupported
types (27 tests, 30 assertions, no DB required).