Use sqlx library for db access, and sql-migrate for migrations.

This CL splits the DB migration and schema logic out of the compilerd
code.

The migrations are now handled by sql-migrate. The migration files live
in go/src/playground/migrations. The README has been updated with
instructions for writing, running, and rolling back migrations.

I've added tests that will perform all migrations, and then roll them
back, three times.

The lsql library has been replaced with sqlx library. The storage model
lives in a package at compilerd/storage/model.go, and has tests.

The compilerd/storage.go file now only contains the http handlers for
load and store, and calls methods on the storage package for all
database work.

The CL at go/vcl/9522 adds all new dependencies to third_party repo.

There's still more cleanup to do, but this CL should provide a clean
foundation for changes to come.

MultiPart: 1/3

Change-Id: Ide1b4c01134bae44fd2e286e70af6a75d0f175d4
17 files changed
tree: ac1052ab1e95baad00be4b6d6808f11bf26892b8
  1. client/
  2. go/
  3. pgbundle/
  4. .gitignore
  5. AUTHORS
  6. CONTRIBUTORS
  7. LICENSE
  8. PATENTS
  9. VERSION