Design a FAST protocol stop-bit encoded field decoder.

The FAST (FIX Adapted for Streaming) protocol is used in financial exchanges for
low-latency market data transmission. Fields are encoded using stop-bit encoding:
each byte uses bit 7 as a stop bit (1 = last byte) and bits 6:0 carry data.

Module name: fast_field_decoder
Ports:
  - input        clk
  - input        rst_n
  - input  [7:0] byte_in       // Input byte from stream
  - input        byte_valid    // Input byte is valid
  - output [31:0] field_value  // Decoded unsigned integer value
  - output        field_valid  // Asserted for one cycle when field is complete
  - output [2:0]  field_len   // Number of bytes in this field (1-5)

Functional specification:
  - Bytes arrive one per cycle when byte_valid is high
  - For each byte: if bit 7 is 0, accumulate bits [6:0] into the field (shift left by 7, OR in new bits)
  - If bit 7 is 1, this is the last byte: accumulate bits [6:0] and assert field_valid
  - field_value contains the fully decoded unsigned integer
  - field_len contains the number of bytes consumed (1 to 5)
  - After field_valid, the decoder resets for the next field
  - Maximum field length is 5 bytes (35 bits of data, but we truncate to 32)

Example:
  - Single byte: 0x85 (1_0000101) → field_value = 5, field_len = 1
  - Two bytes: 0x01, 0x80 (0_0000001, 1_0000000) → field_value = 128, field_len = 2
  - Two bytes: 0x39, 0xC5 (0_0111001, 1_1000101) → field_value = 0x1CC5 = 7365, field_len = 2
