* Added the `greedy` contraction algorithm. This will greedily contract the lowest cost node pair first.
* Added the `bucket` contraction algorithm. This algorithm is optimized for tensor networks with a lot of copy tensors.
* Upgraded the `naive` contraction algorithm. Now it should work even after some edge have been contracted.
* Added the `` operator. Doing `node1 node2` is equal to running `net.contract_between(node1, node2)`
* Added `graphviz` visualization integration. Simply do `tensornetwork.to_graphviz(net)` to get a graphviz object that is isomorphic to your network.
* Added `net.remove_node(node)` method.
* Added `node.shape` and `edge.dimension` properties.
* Improved TF 2.0 beta compatibility.