Add ConstrainedMoveable widget.

This widget will keep plugin panels and the map legend within the bounds
of the map during drag and resize operations.