Issue:
`custom_headers` is available as an optional keyword argument in `build_mime_message` but it is not exposed in `send_email` or `send_email_smtp`. This prevents using custom headers with the email operator when using the default smtp backend. 

https://github.com/apache/airflow/blob/8e2a0bc2e39aeaf15b409bbfa8ac0c85aa873815/airflow/utils/email.py#L105-L116

Expected:
`send_email` should take optional key word argument `custom_headers` and pass it to `send_email_smtp` if that is the selected backend. 




tests/operators/test_email.py
def setUp(self):
        super().setUp()
        self.dag = DAG(
            'test_dag',
            default_args={'owner': 'airflow', 'start_date': DEFAULT_DATE},
            schedule_interval=INTERVAL,
        )
        self.addCleanup(self.dag.clear)
    def _run_as_operator(self, **kwargs):
        task = EmailOperator(
            to='airflow@example.com',
            subject='Test Run',
            html_content='The quick brown fox jumps over the lazy dog',
            task_id='task',
            dag=self.dag,
            files=["/tmp/Report-A-{{ execution_date.strftime('%Y-%m-%d') }}.csv"],
            **kwargs,
        )
        task.run(start_date=DEFAULT_DATE, end_date=DEFAULT_DATE)
    def test_execute(self):
        with conf_vars({('email', 'email_backend'): 'tests.operators.test_email.send_email_test'}):
            self._run_as_operator()
        assert send_email_test.call_count == 1
        resulting_files = send_email_test.call_args[1]['files']
        assert resulting_files[0] == '/tmp/Report-A-2016-01-01.csv'