Implement bidirectional GRU
Following #272, unidirectional GRUs are implemented with stubs.

Next step is to add support for the reverse time direction. Ideally input shapes should be the same as PyTorch or Chainer.