Adds edit purpose for plate only available for lab_managers.
Allows to see the purpose from the view of the plate.

Saves failure reason into descriptor key field at the event
from the message obtained of pico app
[#74388870] Submissions require projects with funding models
Transfer requests don't remove unused assets
Merge pull request #890 from JamesGlover/prevent_transfer_requests_from_destroying_assets

Prevent transfer requests from destroying assets
Remove redundant code block
Merge pull request #891 from JamesGlover/prevent_transfer_requests_from_destroying_assets

Remove redundant code block
[#74677798] Update scopes to samples or ids

Rails scopes are smart enough to accept an array of
ActiveRecord objects or ids. This switch allows us
to reduce the memory footprint elsewhere.
[#74677798] Reduce memory requirements for manifests

Large manifests used the sample as the key in a hash.
This caused issues with larger manifests, as they'd
keep all samples in memory.

This is not required, and switching to sample.id
relieves the memory issues experienced.
CherrypickForPulldown hold->started transition
Merge pull request #893 from JamesGlover/74677798_ss33_-_resolve_ram_problem_for_large_sample_manifests

74677798 ss33   resolve ram problem for large sample manifests
Merge pull request #892 from JamesGlover/cherrypick_request_can_be_unheld

CherrypickForPulldown hold->started transition
Repair asset group scope
Merge pull request #894 from JamesGlover/fix_asset_group_search

Repair asset group scope
Merge pull request #895 from sanger/next_release

Fluidigm Fixes
[fixes #76267422] Use age of aliquot, not asset
Merge pull request #896 from JamesGlover/76267422_bug_-_sample_manifests_are_finding_the_wrong_plate

[fixes #76267422] Use age of aliquot, not asset
Merge pull request #897 from JamesGlover/74388870_ss15_-_dependencies_in_upfront_charging,_illumina_dashboard_and_cluster_&amp;_yields_to_be_made_mandatory

[#74388870] Submissions require projects with funding models
[housekeeping] Remove commented feature
[Fixes #75883484] Transferable plate purposes look up stock wells

Added source_wells_for to transferable_plate_purpose which returns
to original stock wells.
Adds rescue structure to recover from barcode exceptions
raised by the sanger_barcode printing facility.