Add pluggable parser via per-connection $parserFactory injection on
SocketRedisConnection, SocketRedisConnector, createRedisConnector,
and createRedisClient. Default behavior unchanged for callers that
do not pass a factory.
Add Fledge\Async\Redis\Protocol\Resp3ExtensionParser, a drop-in
ParserInterface that delegates to the webpatser/php-resp3 PECL
extension (\Resp3\Parser) and wraps results in RedisValue / RedisError
so the rest of the pipeline sees identical types.
SocketRedisConnection's default factory now picks Resp3ExtensionParser
when extension_loaded('resp3') is true and \Resp3\Parser exists,
otherwise falls back to the pure-PHP RespParser. Suggest the PIE
install in composer.json. CI installs the extension via PIE.
Tests: 9 new Pest cases covering scalar, bulk, null bulk, array,
binary-safe bulk, error replies, and structural equivalence with
RespParser on shared RESP2 fixtures. Suite skips cleanly when the
extension is not loaded.