Added ref type parameter, `compact` to PooledDataFrame

* Allows the user to specify the reference type for PooledDataArrays
  (default is still Uint16)
* Added `compact` to take an existing PooledDataArray and change the
  reference type to the smallest size possible.  Returns the same
  PooledDataArray if nothing has changed, and a new one if the size
  is reduced
* Added RefType to distinguish refs arrays from normal arrays during PooledDataArray construction
Fix reftype conversion in compact
Fix Dict of Vectors constructor

Broken by JuliaLang/julia@da43f62f7a243d2f55d53707cf60c2051096994c
Merge pull request #254 from simonster/fix-dicts

Fix Dict of Vectors constructor
fixed pooleddataarray sort(collect(keys(pool ref)))
Merge pull request #255 from timema/master

fix PooledDataArray ERROR: no method sort(KeyIterator{Dict{Int64,Uint16}},)
Update io.jl
Minor bug fixes

* has() -> haskey() (there are likely more of these)
* typo in test/pooleddataarray.jl
Added ref type parameter, `compact` to PooledDataFrame

* Allows the user to specify the reference type for PooledDataArrays
  (default is still Uint16)
* Added `compact` to take an existing PooledDataArray and change the
  reference type to the smallest size possible.  Returns the same
  PooledDataArray if nothing has changed, and a new one if the size
  is reduced
* Added RefType to distinguish refs arrays from normal arrays during PooledDataArray construction
Fix reftype conversion in compact
PooledDataArray updates:

* Added push!, pop!, shift!, unshift!
* For ref types of bit size 8 or 16, add overflow check
PooledDataArrays: added empty constructor, some docs
Replace deprecated calls to has() with contains()
Merge
Modified formula.jl to handle ~ Days + (1+Days|Subject)
Replace has() calls; add collect()'s
Merge pull request #256 from timema/master

fixes load_df when deserializing stored dataframe
Fix one of the has->haskey changes
Convert R factors to new-style PooledDataArrays with short refs
Merge the pooled_ref_parameterization branch