Bump to version 0.2.0-SNAPSHOT
get-canonical does path compression transparently

If we store the inner map as a ref, and modify it during path
compression, then we can implement get-canonical in a normal way that
doesn't have to return the updated data structure.

Doing a union still does a path copy and returns a new data structure,
so it's still fully persistent.

This is an interface breaking change: get-canonical now returns the
canonical element or nil if not found. It no longer returns a vector.