Check for an integer NA in the R index vector for a factor.

In addition to using an index of 0 in a factor to indicate missing data, some
index vectors end up with an integer NA value.
Avoid use of an explicit uint16 for converting the refs in a PooledDataArray

The practice now is to use POOLED_DATA_VEC_REF_CONVERTER
New version of ModelMatrix

The current approach is to use

mf = ModelFrame(f::Formula, d::AbstractDataFrame)

to create the model frame, followed by

mm = ModelMatrix(mf)

to create the model matrix.  The response is retrieved with

y = model_response(mf)

Still work to be done.
Changes that should have gone in the previous commit but somehow didn't.