c_runtime: decode singular scalars (ra6 3c) New entry pb.c_runtime.decode(plan, bytes) -> table, symmetric in scope with 3b: int32/64, uint32/64, sint32/64, bool, fixed32/64, sfixed32/64, float, double, enum, string, bytes. Repeated, map, message-typed, and unknown tags skip by wire type — 3d/3e/3i/wyp will extend later. Result shape mirrors mode=full pure-Lua decode byte-for-byte: int64 family (int64/uint64/sint64/fixed64/sfixed64) push Tarantool cdata via luaL_pushint64 / luaL_pushuint64; everything else lands as Lua number/string/boolean. Pre-sized via lua_createtable(0, n_fields). Field lookup is a linear scan over plan->fields by field_number; a tag-keyed dispatch table is a future optimization. Tests: 26 cases per codegen mode (full + runtime), covering the bd-mz6 acceptance (round-trip of bd-y1n's Person payload matches mode=full Person_decode shape-for-shape) plus per-kind coverage, proto3-optional presence, fixed64 cdata, -0.0 sign preservation (built via cdata to dodge LuaJIT literal-folding to +0.0), skip-by-wire-type for out-of-scope shapes, unknown-tag skip, WKT override rejection, and truncated input. Suite: 832/832 with PB_ENABLE_C=1, 748/748 + 84 skipped without. Closes bd-mz6