Remove global jquery and underscore
Moved jquery and underscore into main; still global for now
Merge branch 'remove_global_jquery' into development
Handle different types of manifest

Changed 'tubes' for 'details', because it's really sample level.
Added 'model' which comes from the template.
Changed variable name 'tube' for 'resource'.
Changed variable name 'tubeDetails' for 'details'.
Use specialised extractor to get a receptacle of samples.
Group details based on barcode.
Treat group as group of promises that need updating.
Parallise manifest generation

Samples & barcodes can be created in parallel.
Pair up samples with barcodes.
Put samples in tubes & label tubes with associated barcode.
Generate a manifest based on sample+barcode pairs.
The last two can be run in parallel.
Fix saveAs issue as filesaver.js doesn't work with require.js
Big refactor to get towards supporting plate manifests.

Extracted tube specified manifest code into a "generator".
Bound the generator to the template at template load time.
Call the template generator to make the manifest.
Plate generator is currently a random comment!