Q:

How do I extend an existing entity? 

I would like to add some custom fields to the taxonomy_term_data table.  
How do I programmatically extend the Term entity? 

A:

There is a hook for that hook_entity_base_field_info().  The code could look something like this
/**
 * Implements hook_entity_base_field_info(). 
 */
function module_name_entity_base_field_info(\Drupal\Core\Entity\EntityTypeInterface $entity_type) {
  if ($entity_type->id() === 'taxonomy_term') {
    $fields['new_field'] = \Drupal\Core\Field\BaseFieldDefinition::create('string')
      ->setLabel(t('Label'));

    // You can add more options about visibility configuration etc. 

    return $fields;
  }
}

The above could add "hidden" field, (not visible in display or edit mode and not configurable).  You need to do the same thing as when creating base fields in a custom entity.