Controller architecture transition

Implement rpc package (forward requests to a remote cluster) -- incl. fill in all remaining options/response structs in arvados package

Implement initial pgdb package that wraps an rpc.DBClient pointing to the local RailsAPI

Implement router package

Update controller to pass non-federated APIs to router (instead of proxying the incoming HTTP request to rails)

Move existing federation behavior to federation.DBClient

In pgdb, implement "run test in a transaction" framework

In pgdb, implement a simple set of APIs (specimens?) incl. audit logs and scope/permission checks

To avoid superfluous nil checks in pgdb, eliminate pointers in fields that don't have a distinct meaningful null value (arvados.Collection, RuntimeConstraints, Log, etc.)

Port remaining APIs to pgdb/rpc/federation
  • specimens/humans
  • links
  • collections
  • containers/requests
  • jobs/pipelines
  • groups