in some cases nan === nan

```
SELECT arrayCompact([1, 1, nan, nan, 2, 3, 3, 3]) AS x

┌─x───────────────┐
│ [1,nan,nan,2,3] │
└─────────────────┘

SELECT arrayCompact([1, 1, nan, nan, 2, 3, 3, inf, inf, 3]) AS x

┌─x─────────────────────┐
│ [1,nan,nan,2,3,inf,3] │
└───────────────────────┘

SELECT arrayCompact([1, 1, nan, nan, 2, 3, 3, inf, inf, 3, NULL, NULL]) AS x

┌─x──────────────────────┐
│ [1,nan,2,3,inf,3,NULL] │ ???
└────────────────────────┘

SELECT arrayCompact([1, 1, inf, nan, NULL, nan, nan]) AS x

┌─x────────────────────┐
│ [1,inf,nan,NULL,nan] │  ???
└──────────────────────┘
```
#include <DataTypes/DataTypesNumber.h>
#include <DataTypes/DataTypesDecimal.h>
#include <Columns/ColumnsNumber.h>
#include <Columns/ColumnDecimal.h>
#include <Functions/array/FunctionArrayMapped.h>
#include <Functions/FunctionFactory.h>
namespace DB
{
namespace ErrorCodes
{
}
struct ArrayCompactImpl
{
    static bool useDefaultImplementationForConstants() { return true; }