change codegen to val from object so that one can override it
add mkString on Array (special-cased to String element type), why is this not in lms -- there it is only for ArrayBuffer
getting started on staging csv query exec
scan fields, not lines
Revert "add mkString on Array (special-cased to String element type), why is this not in lms -- there it is only for ArrayBuffer"

This reverts commit 6916a636d46e085c04d5b092ff80143d63aeb331.
implement record projection
testing infrastructure: parameterize output file suffix
testing infrastructure: checking print output
PrintRecord -> PrintCSV
generate actual csv

- added yldHd to avoid cluttering with if -- too complex? at least,
  shows that all this yielding is pure staging

- caveat: csv invalid b/c of compilation: ok noise
precompile query, so that csv output does not have compilation: ok noise, also might be useful later for benchmarks
implement filter, careful to stage evaluation functions according to mixed staged records with dynamic fields
comments and minor reordering to match it
Merge branch 'master' of github.com:scala-lms/tutorials into markdownized
how about another method for result schemas instead of yldHd?
extract scan logic into its own method

this way we can do basic reading without op interpreter
extract printing schema and fields
experiment with loading schema from file

do we want to keep the filename params as Rep[String] or
should we change it to String?

once we parse sql, our input will be something like
select * from baz.csv, bar.csv where ..., i.e. imost likely
include the table/file names.
Merge branch 'master' of github.com:scala-lms/tutorials into markdownized