[#56310850] Changing Project status requires a reason.

- Restyles reason tooltip
[#56813978] Chorus can connect to SSL-enabled Greenplum databases.

 The data source new/edit form has a 'Use SSL' checkbox that will set the appropriate options.

 Fixed up GreenplumIntegration tests to always go through Sequel (which respects
 the SSL flag) rather than ActiveRecord::Base.connection.
 Set ssl flag in test data source yml file to run integration tests vs an SSL instance.
[#57349984] Add different error message for SSL connection failures

- Display error messages on error pages
- postgres jdbc docs indicate 28000 -> INVALID AUTHORIZATION SPECIFICATION
 and 28P01 -> INVALID PASSWORD
[#57325518] Re-orders project status dropdown options
[#56309436] Project menus filter between 'All' and 'My Projects'

- The filter criteria is a workspace's isMember
[#57349984] Fix Database error code spec for updated SSL codes
Renames Date.parseFromApi & Date.formatForApi

To avoid conflicting with sinon fakeTimers...
- renames Date.parseFromApi -> chorus.parseDateFromApi
- renames Date.formatForApi -> chorus.dateFormatForApi
[#56310850] Displays relative target date on project status display

- moves Workspace Owner label from project card -> status view
- ProjectStatusChanged events validate presence of status & reason
- Workspaces present project target date
[#56310850] Adding icons for milestone list page.
[#57181288] Project cards resize to fit screen width dynamically.
[#57181288] Make toolips containing activities and descriptions a more reasonable size.
Truncate long usernames for owner on project cards
Rewrite some workfile controller tests to care less about specific numbers
Workspace quickstart only refreshes workspace model when 'interesting' modals are closed

Previously, the quickstart would refresh when any modal was closed, which was
a problem if you destroyed the workspace, because the destroy would go through
followed by a GET for the workspace content, which would 404 or 500.
Migrating launch_jasmine script from chorusjava project
Update vcr cassettes for typeahead search spec
[#56310850] Store project_target_date on the workspace model to reduce queries when presenting workspaces.

project_target_date is updated after save and destroy on milestones (as the counts are)
[#fixes 57181288] Reordering Job Tasks is more reliable

Previously, clicking on the same arrow repeatedly could result in two tasks
with the same index. Now that is less likely.

Job tasks are now reordered by PUTting the list of task ids to the Job update endpoint.

Job tasks are now a sub-collection of the job model, and should fire 'reset'
whenever the job is loaded or saved.
[Fixes #57195820] Job show page header refreshes when job changes

The show page breadcrumbs still lag behind, but will update on the next poll.

Also increases width of 'Next Run' section, which used to wrap when the
month was 'September'.
[#55270210] User can run workflows from the sidebar on index or show page

- Workfiles have a status attribute 'idle'/'running'
- Expect Alpine to update the status when the workfile finishes running