ipfw3nat: nat func to replace the src or dst
The `src` will be replaced by `alias` when a packet is leaving the system.
Hence, the packet is from `src` to `dst` before been translated. And after
been translated, the packet is from `alias` to `dst`.
The state for outgoing packet will be stored in the nat_context of current
CPU. But due to the nature of the NAT, the returning packet may be handled
by another CPU. Hence, a state for the returning packet will be prepared and
store into the nat_context of the right CPU.