`cf.Field.collapse` fails when cell measure has external data

In cf v3.18.0 we get, for a Field with external Cell Measures data:

>>> import cf
>>> f = cf.read('tas_Amon_UKESM1-2-LL_esm-hist_r1i1p1f1_gn_185001-194912.nc')[0]
>>> f.dump()
----------------------------------
Field: air_temperature (ncvar%tas)
----------------------------------
Conventions = 'CF-1.7 CMIP-6.2'
standard_name = 'air_temperature'
units = 'K'

Data(time(1200), latitude(144), longitude(192)) = [[[249.07666015625, ..., 242.0361328125]]] K

Cell Method: area: time(1200): mean

Domain Axis: height(1)
Domain Axis: latitude(144)
Domain Axis: longitude(192)
Domain Axis: time(1200)

Dimension coordinate: time
    axis = 'T'
    calendar = '360_day'
    long_name = 'time'
    standard_name = 'time'
    units = 'days since 1850-01-01'
    Data(time(1200)) = [1850-01-16 00:00:00, ..., 1949-12-16 00:00:00] 360_day
    Bounds:calendar = '360_day'
    Bounds:units = 'days since 1850-01-01'
    Bounds:Data(time(1200), 2) = [[1850-01-01 00:00:00, ..., 1950-01-01 00:00:00]] 360_day

Dimension coordinate: latitude
    axis = 'Y'
    long_name = 'Latitude'
    standard_name = 'latitude'
    units = 'degrees_north'
    Data(latitude(144)) = [-89.375, ..., 89.375] degrees_north
    Bounds:units = 'degrees_north'
    Bounds:Data(latitude(144), 2) = [[-90.0, ..., 90.0]] degrees_north

Dimension coordinate: longitude
    axis = 'X'
    long_name = 'Longitude'
    standard_name = 'longitude'
    units = 'degrees_east'
    Data(longitude(192)) = [0.9375, ..., 359.0625] degrees_east
    Bounds:units = 'degrees_east'
    Bounds:Data(longitude(192), 2) = [[0.0, ..., 360.0]] degrees_east

Dimension coordinate: height
    axis = 'Z'
    long_name = 'height'
    positive = 'up'
    standard_name = 'height'
    units = 'm'
    Data(height(1)) = [1.5] m

Cell measure: measure:area (external variable: ncvar%areacella)

>>> g = f.collapse('area: mean', weights=True)
ValueError: Can't find weights: Cell measure {} has no data, possibly because it is external. Consider setting cell_measures=False

This error, which ultimately comes from cf.Field.weights, should not be raised from collapse, because collapse manages it's own calls to cf.Field.weights, and decides which weights errors to report - and this is not one of them! PR to follow.

Thanks to @CheeseFace for pointing this out.