Fix table to render properly
Merge pull request #722 from bpeirce/patch-1

Fix table to render properly
add a method Initialize an empty DataFrame using PooledDataArray
Merge pull request #725 from armgong/master

add a method Initialize an empty DataFrame using PooledDataArray
use functions instead of symbols for by and colwise
introduces aggregate to separate functionality from colwise and by

The two previous usages of `by` where two distinct operations.
One intended usage is to apply a function to all SubDataFrames
and it is a shortcut for `map(df -> colwise(f, df), groupby(...))`.
The second usage is to create summary statistic by groups of columns,
similarly to Pandas aggregate. The second functionality was split of
into its own separate function: `aggregate`

Example usage:

using DataFrames; using RDatasets; iris = dataset("datasets", "iris");

aggregate(iris, :Species, mean)
by(iris, :Species, df -> DataFrame(
	colwise(mean, df[1:4]),
	[symbol("$(cn)_mean") for cn in names(df)[1:4]]))

aggregate(iris, :Species, [mean, var])
by(iris, :Species) do subdf
	cols = subdf[1:4]
	means = colwise(mean, cols)
	variances = colwise(var, cols)
	header = [symbol("$(cn)_$(fn)") for cn in names(cols), fn in [:mean, :var]][:]
	DataFrame([means; variances], header)
end
deprecates the symbol form of by
adds test for _fnames and changes tests of colwise to aggregate
adds documentation for aggregate and block from of by
fixes bug in colwise([f], df) not returning array of array
Merge pull request #726 from vchuravy/vc/colwise

[RFC] Refactor parts of by and colwise into a new function: aggregate
Speed up hcat and friends, clean up Index creation

Created unexported hcat! function to reduce allocation, notably
in hcat, join, and similar functions.
Speed / clean up _setdiff and its call sites
Clear up DataFrame / AbstractDataFrame signatures

Fleshes out a current (transient) interface for AbstractDataFrames,
loosens signatures of methods that work for AbstractDataFrames,
tightens signatures of methods that don't.

Shuffles code around accordingly -- it is not meant to be permanent,
but apart from less broken methods, it is much clearer what implicit
interfaces exist, and, for me at least, what changes would need to
happen to add different types of data frames. Longer term, perhaps
DataFrame and some of its methods belong to an abstract subtype of
AbstractDataFrame.
Modernize .gitignore
Fix nas function for PooledDataArrays and for non-numeric eltypes
Speed up vcat, combine, and aggregate
Remove some aggregate methods, broken colwise method

The aggregate methods have not made it into a tagged release and clutter
the API for covering a small subset of column renaming cases.
The matching colwise method is also being removed without a deprecation
warning because it never worked.
Speed up AbstractDataFrame => Matrix/DataMatrix conversion

There's still room to speed up underlying copy! routines
Speed up aggregate, remove based_on now that combine is fast