DualPort: add logic to generate the host status signals

The old behavior was to forward the SdramCntl's signals to the currently
active port. This was, however, not correct of a write command followed
immediately by a port switch and a read command. In this case, the done
signal would be forwarded to the wrong port.

An example waveform of the bug can be found at [1]. Note how immediately
after the cursor position, the done1_o signal is asserted in response to
the read request on port 0.

The fix relies on more internal details of SdramCntl, but it can also do
port switches immediately after a read command and eliminates some logic
(specifically, the door* and rdInProgress* signals).

It omits handling the status0_o and status1_o signals. These appear to be
only useful for debugging purposes and I don't know how they're used in
conjunction with the DualPort module.

[1] https://wrtlprnft.net/xess_bug.png