Rename AnalyzerConfig to FeaturesConfig

Change config property "analyzer.experimental-syntax-enabled" to "experimental-syntax-enabled", since it will be used outside of the analyzer
Add experimental syntax flag to FunctionRegistry

* Gate approximate functions with experimental syntax flag
* Will also be used to gate future experimental functions, like the ML functions
Rename AbstractHiveRecordCursor to HiveRecordCursor
Categorize bad date parse format string errors
Categorize partition offline exceptions

Also preserve their exception type by making PartitionOfflineException extend PrestoException. This fixes our internal tests
Fix NPE in PlanPrinter
Rewrite identical projection expressions in terms of the same symbol
Fix Range bug in SPI
Add 0.63 release notes
[maven-release-plugin] prepare release 0.63
[maven-release-plugin] prepare for next development iteration
Make surefire pass user.timezone=UTC via command line

Airbase configures the surefire plugin to set user.timezone=UTC via a
systemPropertyVariable option. The plugin seems to pass those variables to
the tests by calling System.setProperty() before the test is invoked.

In Java 8, java.util.TimeZone is initialized before any user code runs, which
results in the property set by surefire to be ignored.

To illustrate, the following code produces different results in Java 7 vs 8:

    System.setProperty("user.timezone", "UTC");
    System.out.println(java.util.TimeZone.getDefault().getID());

Java 7 prints:

    UTC

Java 8 prints (on my machine):

    America/Los_Angeles
Fix race condition in Hive tests
Refactor ApproximateAverage

* Remove dependency on VarianceAggregation, and refactor to match the other approximate functions better
Bug fix for approximate AVG and SUM error bounds

* Fix AVG error bound, so that we divide by the unweighted number of samples, instead of the weighted number.
* Fix SUM error bound, to include missing samples term, and to compute the variance of the unweighted data
* Include derivation of error bounds in comments
* Improve unit tests for approximate aggregations:
** Check that error bound is neither too tight nor too loose
** Test on random number of samples, instead of always testing on a fixed size
** Increase amount of data used in testing
Update jmxutils to 1.15

This fixes an issue when exporting duplicate mbean names
Categorize illegal arguments to CAST
Categorize more hive split errors
Categorize errors with json functions
Resize groupby ChannelBuilder if there is no space for the frist row