Support varchar and char in result formatting

Changes include :

    Changes the driver api's getResultSetMetadata to return List<ColumnDescriptor>, which include name and TypeDescriptor. Earlier this was returning only name and type as enum, without any type descriptor.
    Updates JDBCResultSet to return ColumnDescriptor.
    Fixes bug in AbstractOutputFormatter wrt ObjectInspectorConverter. Updates result formatter tests to test with all types.
    Updates CSVSerde to serialize and deserialize for all types. Added tests for all types

Could you add some comments here, its not clear whats happening. Is it deserializing string to Java object?