[SPARK-3537][SQL] Refines in-memory columnar table statistics

This PR refines in-memory columnar table statistics:

1. adds 3 more statistics for in-memory table columns: `count`, `nullCount` and `sizeInBytes`, and filter pushdown support for `IS NULL` and `IS NOT NULL`.
1. caches and propagates statistics in `InMemoryRelation` once the underlying cached RDD is materialized.

   Statistics are collected to driver side with an accumulator.
Upper/lower bound can be null for types like string.