PartitionedSignal nmigen-aware Repl

Partitioned Repl is very similar to cat and assign. The output completely changes depending on the partition mask.

Take a PartitionedSignal and a repeat quantity of 2:

partition:    p  p  p     (3 bits)
a        :  A3 A2 A1 A0  (32 bits)

The output will be 64 bit in length. However when the partitions are 32-bit, the output is:

partition:       p     p     p        (3 bits)
out      :  A3 A2 A1 A0 A3 A2 A1 A0  (64 bits)

When 2x16, the top half of A is replicated, and likewise the lower:

partition:       p     p     p        (3 bits)
out      :  A3 A2 A3 A2 A1 A0 A1 A0  (64 bits)

Finally when 4x8, each byte is concatenated:

partition:       p     p     p        (3 bits)
out      :  A3 A3 A2 A2 A1 A1 A0 A0  (64 bits)