Moves validation logic for robots from row-controller to robot component.
Add methods to Robot component for dealing with validation of beds, labware
and robots.
Avoids scanning twice the same labware (reset of all page).
Avoids scanning twice the same bed (resets all page).
Avoids scanning a bed out of its correct position (resets all page)
Avoids scanning a labware that don't belongs to the actual batch (reset input)
Avoids scanning the correct type for the labware of the actual bed (reset input)
Allows to be able to continue in_progress operations between batches of
labware.
Allows to view the icon of the labware although we
only know the expected type
Adds userPromise for using getS2Root from config
If I have a batch of labware (Group A) that is being
transferred to another group of labware, (Group B), AND I am in the
middle of a transferring task (in_progress for Group B), AND I'm
in a step of the workflow that breaks the batch (marks not_batched
for the outputs), THEN I can't know if I am in the middle of that
transferring task if I leave it with the browser.
This is because in order to know if I am currently processing
something, I obtain all items from the current batch that have status
in_progress, but if my outputs are not in the same batch (because in
this case they will not have any batch) then I will not obtain
anything (view setupOutputs() implementation).

This commit is a temporal workaround for this behaviour, as this
can't be properly solved without changing server side code.
Moves resourceUpdated childDone action to event emitter.
Setups eventEmitter on updating labware model.
Fixes bed recording to support changes.
Adds support to change roles without doing a transfer in connected
controller when there is only one input and output and both refer
to the same resource.
When source and destination are the same labware, it will perform just
a change of role, not a transfer inside connected.js
Fixes on rowBedController to emit the rowCompleted event.
Fixes unit tests
Changes name of robot method hasNotScannedLabwareBarcodeBefore().
Fixes comments
Merge pull request #434 from emrojo/refactor-robot

Gel changes - Refactor robot