Split serial RX and TX clients
For the serial subsystem, it makes sense to have a different number of clients capable of input and output: not all clients which are capable of output will need input. Prior to this PR, there was a SERIAL_NUM_CLIENTS macro, as well as a SERIAL_TX_ONLY macro which indicated whether or not serial input was required (e.g. whether the driver enabled RX IRQs, or if an RX virtualiser is necessary).
I believe it makes more sense to instead have a separate count for each functionality, as for example it is plausible that a system may have only 1 client with input enabled, and more than 1 with output enabled.
This PR essentially turns the SERIAL_NUM_CLIENTS and SERIAL_TX_ONLY macros into the SERIAL_NUM_TX_CLIENTS and SERIAL_NUM_RX_CLIENTS macros, in preparation for the tooling supporting specification for each client whether TX and/or RX are enabled.
Merge after #301.