Refactor pipeline_template -> pipeline_instance process.

Copy components from template to instance during #create, not #show.

Maintain script_parameters information in pipeline_instance. When
editing, use that instead of relying on the original template.

Add a generic "merge parameters in update" param, instead of altering
default behavior for pipeline instances. Use Rails deep_merge instead
of gem.

Maintain original component order instead of applying tsort.
Ignore jobs with no repository specified, instead of crashing.
Do not reuse cancelled jobs. Do not consider nil outputs from
incomplete jobs when deciding whether a script is deterministic.
Make arrays non-editable on pipeline instance page.

(This is better than offering to edit them but mangling them in the
process.)
Send HTTP 500 if we end up in render_error without a more specific status.
Add token that is valid except that it points to a missing user.
Move test-api-server framework so it works in functional and unit tests too.
Add tests to expose some token handling bugs.
Fix exception when valid token points to missing user
Add tests, enable environments/test.rb to prevent CSRF checks in tests
Update local copy of updated_at if the server provides it.
Ensure created/modified/updated_at are correct, add tests.
Merge branch 'master' into 2596-refactor-pipeline-create

Conflicts:
	apps/workbench/test/functional/users_controller_test.rb
	services/api/app/controllers/arvados/v1/jobs_controller.rb
	services/api/test/functional/arvados/v1/links_controller_test.rb
Fix, and tests for, PipelineInstance#bootstrap_components
Remove bootstrap_components logic from Workbench, now that it happens
automatically on the API server side.
Merge branch 'master' into 2596-refactor-pipeline-create

Conflicts:
	apps/workbench/app/helpers/application_helper.rb
Merge back-to-back condition blocks with the same condition.
Fix unwarranted use of instance variable.
Fix errant use of symbol vs. string
Merge branch '2596-refactor-pipeline-create'

closes #2596