Support creation of BinTableHDUs with zero rows

This is a problem we've run into with `jwst_lib.models`.  It doesn't seem to be possible to create a BinTableHDU from a numpy structured array with 0 rows.  This fixes that by determining the shape from shape of the field, not the shape of the first row of the field (which may not always exist).

@embray