BUG: `date_range` ignores `nanoseconds` component of `DateOffset` frequency
### 

- [X] I have checked that this issue has not already been reported.

- [X] I have confirmed this bug exists on the [latest version](https://pandas.pydata.org/docs/whatsnew/index.html) of pandas.

- [X] I have confirmed this bug exists on the master branch of pandas.


### Reproducible Example

```python
import pandas as pd

pd.date_range(start='2001-01-01', freq=pd.DateOffset(nanoseconds=1), periods=3).to_numpy()
```


### Issue Description

Greetings!

When specifying the frequency as a `DateOffset` object, Pandas seems to ignore the frequency entirely if it consists solely of a `nanoseconds` component:

```python
In [6]: pd.date_range(start='2001-01-01', freq='1ns', periods=3).to_numpy()
Out[6]:
array(['2001-01-01T00:00:00.000000000', '2001-01-01T00:00:00.000000001',
       '2001-01-01T00:00:00.000000002'], dtype='datetime64[ns]')

In [7]: pd.date_range(start='2001-01-01', freq=pd.DateOffset(nanoseconds=1), periods=3).to_numpy()
Out[7]:
array(['2001-01-01T00:00:00.000000000', '2001-01-02T00:00:00.000000000',
       '2001-01-03T00:00:00.000000000'], dtype='datetime64[ns]')
```


or, if it consists of multiple components, ignores the `nanoseconds` part:

```python
In [8]: pd.date_range(start='2001-01-01', freq=pd.DateOffset(days=1, nanoseconds=1), periods=3).to_numpy()
Out[8]:
array(['2001-01-01T00:00:00.000000000', '2001-01-02T00:00:00.000000000',
       '2001-01-03T00:00:00.000000000'], dtype='datetime64[ns]')
```

### Expected Behavior

```python
import pandas as pd
import numpy as np

expect = pd.date_range(start='2001-01-01', freq='1ns', periods=3).to_numpy().astype('int64')
got = pd.date_range(start='2001-01-01', freq=pd.DateOffset(nanoseconds=1), periods=3).to_numpy().astype('int64')
np.testing.assert_equal(expect, got)
````

### Installed Versions

<details>

Replace this line with the output of pd.show_versions()

</details>
