1. Update `examples/pytorch/gcn` and `python/dgl/nn/pytorch` based on the latest APIs
2. Add full support for dropout in `examples/pytorch/gcn` and `python/dgl/nn/pytorch`
3. Rename `GCN` class in `python/dgl/nn/pytorch` to be `GraphConvolutionLayer` class
4. Make node field an argument that can be configured by users in GraphConvolutionLayer
Note that adjacency normalization has not been supported yet in the examples.
* WIP: API renaming
* API rewrite and node function refactor
* builtin functions
* builtin functions tested
* fix test
* send and recv spmv test
* WIP: fix examples
* Fix examples using new APIs
* model code for generative graphs
* batched version for dynamic graph generation using padding
* renaming function train back to forward
* remove old util function for padding DGMG
* override networkx clear to reset state, add dgl.nn
* Dynamic graph without batching
* use relative import path
* load dataset, pad batch
* bug fix
* experimental batch and unbatch
* dgmg batched version
* minor tweak
* move preprocessing padding into data loading
* batch graph test code
* minor
* batched graph class and test cases
* make dgl.nn.gcn a simple layer plus minor fix
* update dgmg model
* test forward using attribute field
* use frame append, minor changes
* moving networkx operations out of forward
* revert some changes
* remove structural immutability check