improved unknown column handling, better exceptions of unknown function signatures

return null for unknown columns off non-doc tables if row granularity matches
if (ident.tableIdent().equals(table.ident()){
    reference = table.getDynamic(nestedIdent)
} else {
   TableInfo tableInfo = referenceInfos.getTableInfo(ident.tableIdent());
    reference = tableInfo.getDynamic(nestedIdent)
    if (reference.rowGranularity is finer table.rowgranularity){
        throw error
}
}