Fix regression with VARCHAR partitions in Hive

Fix the Hive connector to return Slice objects for the values of VARCHAR
partition columns instead of String objects. Also fix the Hive tests to
use Slice instead of String.
Static import Slices.utf8Slice
Simplify expression
Add check for unsupported Hive partition type
Simplify test table creation for S3
Remove unnecessary methods from BlockBuilder
Clean up new Type and Block SPIs

Add JavaDocs
Rename methods and parameter names
Cleanup IDE warnings

Add missing @Override annotations
Replace uses of StringBuffer with StringBuilder
Make utility classes final
Rename NullType to UnknownType and move to presto-main
Require Type implementations to have a getInstance method
Replace manual slice copy code with Slices.copyOf
Rename RecordCursor.getString to getSlice and make it return Slice