U-Net and Its Variants for Medical Image Segmentation: A Review of Theory and Applications