Add missing presto-main dependency to presto-server

This was missed in the refactoring that moved the server code to presto-main.
As a result, the server fails to start when run via the launcher
Replace Unsafe with new Slice ByteArrays utility
Remove obsolete TODO
Set 1 hour time bound on model training
Remove heuristic from learn aggregation
Add unit test for learn aggregation
Add function to train libsvm models

Add special learning functions that allow you to configure the
hyperparameters of the model
Fix Hive tests for VARBINARY
Fix hidden columns in union planning
Update README for presto-server change
Filter nulls before fetching values from an index
Fix handling of Hive maps with null keys
Update connector documentation
Add parser tests for comments
Add splitter method to detect empty statements
Cleanup method declarations
Fix CLI development profile
Fix handling of empty statements in CLI

Statements that only contained comments were not handled properly
by the CLI: they were sent to the server for execution, which
legitmately rejected them as not containing a valid statement.
The CLI now skips such logically empty statements.
Require terminated statements from files in CLI

Previously, the CLI would automatically terminate the last statement
read from a file. A non-terminated statement will now result in an
error. This is because there is no way to detect if the partial
statement is intended or if it is the result of an error condition
such as a broken pipe.

For example, consider the following statement:

    SELECT * FROM t
    WHERE id = ...;

Suppose an external program was feeding this statement to the CLI
using a pipe that was broken after the first line. This would result
in the following statement being executed:

    SELECT * FROM t
    ;

Such a semantic difference could have disastrous consequences,
especially when combined with data modification commands (which we
plan to support in the future).
BlockBuilder should use underlying slice size