anchor.diff:  * `name` unique identifier of an asset (for example: uuid of a plate)
   * `type` type of the object the labellable related (resource, equipment, user etc...)
   * `labels` it is a hash which contains the information of the labels.
  +
   By labels we mean any readable information found on a physical object.
   Label can eventually be identified by a position: an arbitray string (not a Symbol).
   It has a value, which can be serial number, stick label with barcode etc.
  
positive.code: **Bulk create labellable**
  
  * `labellables` is mandatory
  POST /actions/bulk_create_labellable
  > Accept: application/json
  {
  
negative.code:     "position": "rear barcode"
  }}
  
  **Add an already existing label to an asset.**
  
  The above example should return an error message, if the given label position already contains a label on a resource.
  
  * `labellable_uuid` unique identifier of an object the labellable related to
  * `type` the type of the label. It can be 'sanger-barcode', '2d-barcode', 'ean13-barcode' etc...
  * `value` the value of the barcode
  * `position` the position of the barcode is an arbitray string (not a Symbol).
  
  POST /actions/create_label
  > Accept: application/json
  {
      "create_label": {
          "labellable_uuid": "11111111-2222-3333-4444-555555555555",
          "type": "sanger-barcode",
          "value": "1234-ABC",
          "position": "front barcode"
      }
  }
  < 200
  < Content-Type: application/json
  {
      "errors": {
          "position": "The front barcode position already contains a label."
      }
  }
  
  **Use update_label action to update a label.**
  
  * `labellable` the labellable resource to update
  * `position` position of the label to update
  * `new_label` it is an hash which contains the update information related to the label
  The hash can contains the new label information (position, type, value).
  
  By labels we mean any readable information found on a physical object.
  Label can eventually be identified by a position: an arbitray string (not a Symbol).
  It has a value, which can be serial number, stick label with barcode etc.
  It has a type, which can be sanger-barcode, 2d-barcode, ean13-barcode etc...
  
  POST /actions/update_label
  > Accept: application/json
  {
      "update_label": {
          "labellable_uuid": "11111111-2222-3333-4444-555555555555",
          "existing_position": "front barcode",
          "new_label": {
              "position": "rear barcode",
              "type": "sanger-barcode",
              "value": "5678DEF"
          }
      }
  }
  < 200
  < Content-Type: application/json
  {
      "update_label": {
          "actions": {
          },
          "user": "user",
          "application": "application",
          "result": {
              "labellable": {
                  "actions": {
                      "read": "http://example.org/11111111-2222-3333-4444-555555555555",
                      "update": "http://example.org/11111111-2222-3333-4444-555555555555",
                      "delete": "http://example.org/11111111-2222-3333-4444-555555555555",
                      "create": "http://example.org/11111111-2222-3333-4444-555555555555"
                  },
                  "uuid": "11111111-2222-3333-4444-555555555555",
                  "name": "11111111-2222-3333-4444-000000000000",
                  "type": "resource",
                  "labels": {
                      "rear barcode": {
                          "value": "5678DEF",
                          "type": "sanger-barcode"
                      }
                  }
              }
          },
          "labellable_uuid": "11111111-2222-3333-4444-555555555555",
          "existing_position": "front barcode",
          "new_label": {
              "position": "rear barcode",
              "type": "sanger-barcode",
              "value": "5678DEF"
          }
      }
  }
  
  --
  Batch Resource
  
  A batch groups order items together.
  --
  
  **Create a new batch.**
  
  * `process` the process that the batch is going through
  * `kit`
  
  POST /batches
  > Accept: application/json
  { 
      "batch": {
          "process": "manual extraction",
          "kit": "AAABBBCCC"
      } 
  }
  < 200
  < Content-Type: application/json
  {
      "batch":{
          "actions":{
              "read":"/11111111-2222-3333-4444-555555555555",
              "create":"/11111111-2222-3333-4444-555555555555",
              "update":"/11111111-2222-3333-4444-555555555555",
              "delete":"/11111111-2222-3333-4444-555555555555"
          },
          "uuid":"11111111-2222-3333-4444-555555555555",
          "process":"manual extraction",
          "kit": "AAABBBCCC"
     }
  }
  
  **Update a batch.**
  
  * `process` the process that the batch is going through
  * `kit` the kit to update the batch with
  
  PUT /batches
  > Accept: application/json
  { 
      "batch": {
          "process": "manual extraction",
          "kit": "AAABBBCCC"
      } 
  }
  < 200
  < Content-Type: application/json
  {
      "batch":{
          "actions":{
              "read":"/11111111-2222-3333-4444-555555555555",
              "create":"/11111111-2222-3333-4444-555555555555",
              "update":"/11111111-2222-3333-4444-555555555555",
              "delete":"/11111111-2222-3333-4444-555555555555"
          },
          "uuid":"11111111-2222-3333-4444-555555555555",
          "process":"manual extraction",
          "kit": "AAABBBCCC"
     }
  }
  
  