A single-layer RNN can approximate stacked and bidirectional RNNs, and topologies in between