Conform all RNN cell `State` structs to the same protocols. (#657)
Conform all RNN cell `State` structs to the same protocols. (#657)

Make the following structs:
- `SimpleRNNCell.State`
- `LSTMCell.State`
- `GRUCell.State`

Conform to the same set of useful protocols:
- `Equatable`
- `Differentiable`
- `VectorProtocol`
- `KeyPathIterable`

These conformances should be defined in the library for convenience.
tensorflow/swift-apis,tensorflow/swift-apis,tensorflow/swift-apis,tensorflow/swift-apis,tensorflow/swift-apis