Add strong/weak connectivity predicates
Use Graph#number_of_nodes() instead of Graph#size()

The former is the number of nodes in the graph; the latter is the
number of edges. Fixes the trivial graph being reported as
disconnected.
Add functions to serialize/deserialize graphs
Add block to load remote JSON graphs
Add save/load functionality for graphs in the workspace