Shapes widget

This PR adds the `visualize_shapes` widget. The widget expects a list of `LandmarkManager` objects and can also be called from such an object using the `view_widget()` method, e.g. `image.landmarks.view_widget()`.