How to add an image upload field in a custom Field Type
What you want to do, is to save a reference to the file which is uploaded. 

Since what you are making is an image upload with extra text field, you should consider using either


\Drupal\image\Plugin\Field\FieldWidget\ImageWidget
\Drupal\image\Plugin\Field\FieldWidget\FileWidget


as foundation to your widget. That way you should be able to reuse much of the trick image/file handling and just add custom parts or overrides for your custom widget.

You should also consider using either


\Drupal\image\Plugin\Field\FieldType\ImageItem
Drupal\file\Plugin\Field\FieldType\FileItem


as foundation to your field type, since they also handle a lot of things for you. The image variant adds a lot of stuff, like alt, height, width, which is something you probably want/need at some point, so no reason making all of this yourself.