Add new Cols-based methods.
Remove unused ColumnSelection code.
Delete unused code.
Remove date-specific reducers for now.
Merge branch 'master' into topic/cols

Conflicts:
	modules/pframe/src/main/scala/pellucid/pframe/Frame.scala
Clean up Rec constructors.
WIP: blah
add reducers that generalize first and last

- add FirstN and LastN
- expose the new reducer classes in the package object
- expand tests for First(N)/Last(N)
remove macro paradise compiler plugin
remove unneeded dependencies
cull unneeded code in sbt plugins
update sbt version
bump version numbers for dependencies

fix use of Discipline in tests
eliminate warnings from updated ScalaCheck
turn on feature warnings and eliminate the warnings

- turn on implicit conversions where appropriate
- eliminate reflective call
- remove use of postfix ops
scaladoc for Reducer trait
Change nomenclature from Missing to NonValue

- supertype of NA and NM changes from `Missing` to `NonValue`
- Cell method `isMissing` becomes `isValue`
- Column methods `exists`, `missing`, and `value`, become `isValueAt`, `nonValueAt`, and `valueAt`, respectively.
- fix all call sites
- fix up related docs and comments
remove abstract Out type from Reducer trait

following discussion https://github.com/pellucidanalytics/pframe/pull/4#discussion_r12907357, @tixxit suggested simply removing the abstract type from the Reducer trait as it is unneeded.
get specs2 to generate junitxml and html reports
propagate NM in simple reducers

after discussion with @tixxit, `NM` should have similar semantics to `NaN` in floating point arithmetic and so should propagate similarly.