Updating changes to my local copy.
Merge branch 'focus_bug_fix' of https://github.com/jbeast/s2_extraction_pipeline
Merge branch 'focus_bug_fix' of https://github.com/jbeast/s2_extraction_pipeline into return_key
Remove references to findByBarcode et al
Fixed drop zone so that you can re-click
Massive refactor of sample manifest reception.

The issue originally started that all of the samples in a manifest were
then requested in parallel, which for a 3000 entry manifest caused pain.
This was an attempt to restructure the code in such a way to make that
far more friendly, but degenerated into fixing no end of bugs & issues.

Collect errors per tube.
Collect errors globally for missing tubes.
Global functions to deal with the various stages of processing.
Permit manifest upload even if there are errors, with a warning.
Hide controls in the face of success.
Display & check gender, hide order choice.
Detail with pages of tubes sequentially.

Process each tube on a page sequentially.
Process each page of tubes in parallel.
Wrote an _.regardless function that is $.when but right.
Refactored manifest template handling code

Move CGAP specific template info into separate file.
Dynamically load templates.
Build JsonTemplater.applicator instances once per template.
Drop the combinedData which can be retrieved from manifest structure.
Enable custom validations per manifest template.

Moved all of the template information into the manifest structure.
Fixed a bug: if the template didn't exist it would blow up!
Fixed a bug: if the column headers were incorrect it didn't fail!
Added custom validation callback to templates.
Handle non-CSV file uploads.

Fixed a bug: rejection of deferred wasn't manifest but model.
Ensure that manifest errors are not overwritten by messages.
If the file looks invalid UTF-8 at the start then assume Excel.
Use development branch of S2Mapper
Merge pull request #310 from mattdenner/use_improved_search

Use improved search
Use uat branch of S2Mapper
Merge remote-tracking branch 'sanger/development' into HEAD
Ensure master branch of S2Mapper
Added onBarcodeScanned function event. It is emitted
when characters length equals 13 (barcode length).
Included return key behaviour for scan readers in
base_controller validation
Added Tabulator behaviour for changing to next input on barcode,
so barcode readers that emit tabulators at end of input could work as the carriage
return.
Merge pull request #311 from emrojo/return_key

Return key and Tabulator as ending line
Added skin biopsy collection study