feat(SparseGNN): Make weight tying, RNN cell, activation function configurable
feat(SparseGNN): Make weight tying, RNN cell, activation function configurable

This can now simulate the Graph Convolutional Network model for
different edge types from Schlichtkrull et al. (2017), using the
following settings:
  --config '{"use_edge_bias": false, "use_edge_msg_avg_aggregation": true, "tie_gnn_layers": false, "graph_rnn_cell": "RNN", "graph_rnn_activation": "ReLU"}'

Note that this is not completely identical: Our variant uses one weight
matrix per edge type and layer and then one weight matrix for the
aggregated messages for all edge types, whereas the original doesn't
have the latter.

Microsoft/gated-graph-neural-network-samples