Remove files that should have been long removed before
[#99] Move inputs & outputs behind objects

Create a common interface for deferred/non-deferred things
Use deferred implementation for inputs
Use non-deferred implementation for outputs
Add finding by barcode to these
[#99] Refactor input/output cache to use promises

Both inputs and outputs can be treated as promises
Finding by barcode logic now moves into the cache
We can specify what should happen if it is *not* found
[#99] Take missing behaviour from configuration

Allow connected configuration to define cache behaviour
Pass cache to missing handler so new barcodes can be added
Default the missing behaviour to do what it does now: nothing.
[#99] Move behaviour and missing handler code

Behaviours are related to connected, so put them in subdirectory
Added a missing handlers function in the same directory
Pass the owner model to the missing handler too
[#99] Added more missing handlers & caching behaviour

Added a 'report' missing handler that reports an error
Added a 'create' missing handler that creates missing tubes
Added a 'find' missing handler that finds tubes
Default behaviour for connected should be to 'report'
Re-cache any results so that we know the cache is consistent
[#99] Added composite missing handler

'composite' = 'find' and on unfound 'create'
[#99] Specify labware model during scanning

Scanning the barcode of a labware knows the type of labware
Finding something cached by barcode now takes the model
Missing handlers can be passed the model to create correct typet
[#99] Move caching into separate file
[#99] Refactor caching to a generic behaviour

How you find things in a cache is independent of the cache itself
Connected can now define getByBarcode as built on caching retrieval
[#99] Use promise behaviour on cache get
[#99] Use cache class for low level caching

Find by UUID looks in cache first then tries retrieve by UUID
Find by barcode looks in cache first then tries to retrieve by barcode
Use common caching throughout
[#99] Hook output creation into behaviours

Allow outputs to be created controlled by behaviour
Added print event to behaviours
Added a never behaviour for never doing anything
Fixed the name of the extracted DNA & RNA tube roles

Conflicts:
	app/scripts/pipeline_config.json
[#99] Label printing & output creation are separate

Printing labels has nothing to do with outputs being ready
Connected model now has a ready state, rather than a print state
[#99] Updated resource means labware presenter ready
[#99] Labware presenter needs to be more controllable

Hide labware view if it is not required
Selection page hides labware for new entries
Selection page has to set expected model for labware
[#96] Refactor childDone behaviour
[#106] Added start of post extraction racking config

Added step for batching of tubes for racking
Added step for 1D-to-2D tube transfer

Conflicts:
	app/scripts/pipeline_config.json
Merge pull request #110 from mattdenner/refactor_output_lookup_from_connected

Refactor output lookup from connected