Merge branch '3634-tab-state'
Merge branch 'master' into 3618-column-ordering
3618: allow for orders to be parameterized for showing records; proof of concept here for project tabs, sorting Data Collections by name
3618: first steps at making it possible to sort in infinite scroll by clicking on a column name
3618: now can use a list of sort columns if there are multiple models involved
(but note that still there can only be one sort column at a time per model)
Merge branch 'master' into 3618-column-ordering
3618: replace js use of == and != with the more predictable === and !==
3618: Add some basic API server tests for the sort feature
3618: correctly propagate the ordering parameters when scrolling
3618: Add Workbench integration test for sorting data collections
3618: When changing to sorting on a different column, make sure the directional indicator of the previous is removed.
3618: best guesses about which database columns could be used for sorting (not certain about the descriptions, though, in many cases)
3618: remove unnecessary "raw" directive for the sort columns table header attribute
3618: store in the browser history state the current sort settings for each tab
Merge branch 'master' into 3618-column-ordering
3618: Make tests pass: bugs were revealed in "Other objects" tab related to there not being any sorting going on there, etc.; add checks for HTML5 history and for nulls and undefineds
Merge branch 'master' into 3618-column-ordering

Conflicts (all resolved including fixes):
	apps/workbench/app/controllers/projects_controller.rb
	apps/workbench/app/views/projects/_show_jobs_and_pipelines.html.erb
	apps/workbench/app/views/projects/_show_tab_contents.html.erb
	services/api/app/controllers/arvados/v1/groups_controller.rb
3618: bug fix: was confusing the "desc" meaning a "descending sort" with the "desc" that is the beginning of the column name "description"
3618: make sure something happens if the order param is actually detected as an array
3618: improve api security for sorting to make sure each column we sort by is for a real table and a real column in the db