Summary: Fix problems with out-of-memory for many columns

JIRA: Pivotal-170, 171

Pivotal-170: When running 'summary' on a large number of columns,
the quartile computation ends of consuming high amount of memory. This
has been resolved by splitting the actual columns into reasonable set
of columns, and returning the final output by colating results for each
set.

Pivotal-171: Wrong results are produced when the target_columns set
contains more than one column and all values in a column are NULL.
This is caused by the odd behaviors of "select
string_to_array(unnest(x_array), 'delim')": when x_array contains NULL
values, it will produce different results from "select
string_to_array(value, 'delim') from unnest(x_array) as value".
This has been resolved by moving the unnest call to a subquery.