CSV parser
Parser for curated CSV participant data

No processing yet.  See assembla-130
Working tested curated csv parsing; no processing

Added header parsing and enum case insensitivity.
Ingest preview and front-end
Minor fixes for ingest frontend
Add Offset.fromString parsing and use for ingest/forms
Improve runsql check to validate down evolutions

Unfortunately, this discovered that 2.sql down was wrong, so it's now
been fixed.  Requires manual reset.
Add some new filetypes and race/ethnicity metrics
Tie curated ENUMs to metrics

Also remove stray file
Switch to exceptions for parsing errors

The error monads were cute and all but the syntax is horrific, and we're
really in exception land anyway.
ingest: report csv-based positions in parsing
ingest.Curated.populate complete, untested
Add scaladoc source links

Yes, that's a euro symbol. WTF?
Frontend for ingest.Curated.populate, partially working
media.AV.probe: Include stream codecs
Add knowledge of and test for primary video format

Very restrictive at the moment.
Fix various ingest problems, working!

Use a stub audit_timeseries view; define Offset#approx equality; misc
SQL fixes.
ingest parsing: trim strings, why not?
ingest: allow MM/dd/yy dates
Fix primary auditing (of logins/logouts)