GCN using GraphConv in half precision

for a simple GraphConv layer, if we get a graph and feed it to GraphConv in half, we get some problems. Same trying to use this layer in GCN.

# Case 2: changed datatype
g = dgl.graph(([0,1,2,3,2,5], [1,2,3,4,0,3]))
g = dgl.to_half(g)
print('g idtpye:' , g.idtype)
g = dgl.add_self_loop(g)
feat = th.ones(6, 10).half()
print('feature dtype:', feat.dtype)
conv = GraphConv(10, 2, norm = "right")
res = conv(g, feat)
print('conv dtype: ', res.dtype)

# allow_zero_in_degree example