Towards Neural Co-Processors: Combining Neural Decoding and Encoding in Brain-Computer Interfaces