Updates to SubDataFrames, implementation of DataFrameRow

* Parametrize SubDataFrames by T<:AbstractVector{Int}
* Changed SubDataFrame to immutable
* DRYed out sub() functions
* Deprecated subset (alias for sub), on the theory that we should
  remove redundant methods like this
* Add show() for DataFrameRow
* Change EachRow, EachCol -> eachrow, eachcol, to better match
  Base convention for iterators
* Return DataFrameRows from eachrow
* Changed Sort.lt comparisons to compare DataFrameRows (for issorted)
* Specialize collect(r::DataFrameRow), so that Dict(collect(r::DataFrameRow)) works
* Start to use size(df, 1) for nrow(df), size(df, 2) for ncol(df)