custom element: tobago-label

issue: TOBAGO-1633: TS refactoring
diff --git a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/LabelLayoutRendererBase.java b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/LabelLayoutRendererBase.java
index f625eb8..82d75d7 100644
--- a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/LabelLayoutRendererBase.java
+++ b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/LabelLayoutRendererBase.java
@@ -127,17 +127,17 @@
         flex = false;
     }
 
-    writer.startElement(getComponentTag());
     if (labelLayout == LabelLayout.gridLeft || labelLayout == LabelLayout.gridRight
         || labelLayout == LabelLayout.gridTop || labelLayout == LabelLayout.gridBottom) {
+      writer.startElement(HtmlElements.TOBAGO_LABEL);
       writer.writeIdAttribute(clientId + ComponentUtils.SUB_SEPARATOR + "label");
     } else {
+      writer.startElement(getComponentTag());
       writer.writeIdAttribute(clientId);
     }
     writer.writeClassAttribute(
         flex ? TobagoClass.FLEX_LAYOUT : null,
         flex ? BootstrapClass.D_FLEX : null,
-        TobagoClass.LABEL__CONTAINER,
         BootstrapClass.FORM_GROUP,
         ComponentUtils.getBooleanAttribute(component, Attributes.required) ? TobagoClass.REQUIRED : null,
         markup != null && markup.contains(Markup.SPREAD) ? TobagoClass.SPREAD : null);
@@ -163,12 +163,11 @@
       case gridRight:
       case gridTop:
       case gridBottom:
-        writer.endElement(HtmlElements.DIV);
+        writer.endElement(HtmlElements.TOBAGO_LABEL);
 
-        writer.startElement(HtmlElements.DIV);
+        writer.startElement(getComponentTag());
         writer.writeIdAttribute(clientId);
         writer.writeClassAttribute(
-            TobagoClass.LABEL__CONTAINER,
             BootstrapClass.FORM_GROUP,
             ComponentUtils.getBooleanAttribute(component, Attributes.required) ? TobagoClass.REQUIRED : null,
             markup != null && markup.contains(Markup.SPREAD) ? TobagoClass.SPREAD : null);
@@ -207,7 +206,7 @@
     if (StringUtils.isNotBlank(label)) {
       writer.startElement(HtmlElements.LABEL);
       writer.writeAttribute(HtmlAttributes.FOR, getFieldId(facesContext, component), false);
-      writer.writeClassAttribute(TobagoClass.LABEL, BootstrapClass.COL_FORM_LABEL);
+      writer.writeClassAttribute(BootstrapClass.COL_FORM_LABEL);
       if (component instanceof SupportsAccessKey) {
         final LabelWithAccessKey labelWithAccessKey = new LabelWithAccessKey((SupportsAccessKey) component);
         HtmlRendererUtils.writeLabelWithAccessKey(writer, labelWithAccessKey);
diff --git a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/LabelRenderer.java b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/LabelRenderer.java
index 8f04eb8..ea7b9fc 100644
--- a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/LabelRenderer.java
+++ b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/LabelRenderer.java
@@ -74,10 +74,9 @@
     writer.startElement(HtmlElements.LABEL);
     HtmlRendererUtils.writeDataAttributes(facesContext, writer, label);
     writer.writeClassAttribute(
-        TobagoClass.LABEL,
+        BootstrapClass.COL_FORM_LABEL,
         TobagoClass.LABEL.createMarkup(markup),
         required ? TobagoClass.REQUIRED : null,
-        BootstrapClass.COL_FORM_LABEL,
         label.getCustomClass());
     writer.writeIdAttribute(clientId);
     if (forId != null) {
diff --git a/tobago-core/src/main/java/org/apache/myfaces/tobago/renderkit/css/TobagoClass.java b/tobago-core/src/main/java/org/apache/myfaces/tobago/renderkit/css/TobagoClass.java
index 33abe3a..731910e 100644
--- a/tobago-core/src/main/java/org/apache/myfaces/tobago/renderkit/css/TobagoClass.java
+++ b/tobago-core/src/main/java/org/apache/myfaces/tobago/renderkit/css/TobagoClass.java
@@ -140,7 +140,6 @@
   @Deprecated
   INPUT_GROUP_OUTER(INPUT__GROUP__OUTER.getName()),
   LABEL("tobago-label"),
-  LABEL__CONTAINER("tobago-label-container"),
   LINK("tobago-link"),
   LINKS("tobago-links"),
   MESSAGES("tobago-messages"),
diff --git a/tobago-core/src/main/java/org/apache/myfaces/tobago/renderkit/html/HtmlElements.java b/tobago-core/src/main/java/org/apache/myfaces/tobago/renderkit/html/HtmlElements.java
index 5394f3c..da03315 100644
--- a/tobago-core/src/main/java/org/apache/myfaces/tobago/renderkit/html/HtmlElements.java
+++ b/tobago-core/src/main/java/org/apache/myfaces/tobago/renderkit/html/HtmlElements.java
@@ -135,6 +135,7 @@
 
   TOBAGO_BEHAVIOR("tobago-behavior"),
   TOBAGO_FILE("tobago-file"),
+  TOBAGO_LABEL("tobago-label"),
   TOBAGO_IN("tobago-in"),
   TOBAGO_PANEL("tobago-panel"),
   TOBAGO_POPUP("tobago-popup"),
diff --git a/tobago-core/src/main/resources/scss/_tobago.scss b/tobago-core/src/main/resources/scss/_tobago.scss
index 046b925..4a4090b 100644
--- a/tobago-core/src/main/resources/scss/_tobago.scss
+++ b/tobago-core/src/main/resources/scss/_tobago.scss
@@ -274,7 +274,7 @@
 }
 
 /* the non-label-element inside of a label-layout with flex box */
-.tobago-flexLayout.tobago-label-container > {
+tobago-label.tobago-flexLayout > {
   .form-control, .form-control-plaintext, .twitter-typeahead,
   .tobago-input-group-outer, .tobago-messages-container,
   .tobago-selectManyShuttle {
@@ -313,7 +313,7 @@
   grid-column-gap: $spacer-x; // old
   column-gap: $spacer-x;
 
-  .tobago-label-container > {
+  tobago-label > {
     .tobago-textarea, .tobago-selectManyListbox, .tobago-selectManyShuttle {
       height: 100%;
     }
@@ -360,11 +360,11 @@
 }
 
 /* label ----------------------------------------------------------- */
-.tobago-label {
+tobago-label {
   width: 100%;
 }
 
-.tobago-flexLayout > .tobago-label {
+.tobago-flexLayout > tobago-label {
   width: 155px;
 }
 
@@ -1624,7 +1624,7 @@
 }
 
 .tobago-required .tobago-label:after,
-.tobago-required.tobago-label:after {
+tobago-label.tobago-required:after {
   content: "*";
   color: theme-color("danger");
 }
diff --git a/tobago-theme/tobago-theme-speyside/src/main/scss/_speyside-overwrites.scss b/tobago-theme/tobago-theme-speyside/src/main/scss/_speyside-overwrites.scss
index 03d31c3..af09919 100644
--- a/tobago-theme/tobago-theme-speyside/src/main/scss/_speyside-overwrites.scss
+++ b/tobago-theme/tobago-theme-speyside/src/main/scss/_speyside-overwrites.scss
@@ -127,7 +127,7 @@
   }
 }
 
-.form-group, .tobago-label {
+.form-group, tobago-label {
   ~ a.tobago-link {
     padding-top: 0.46em;
     margin-bottom: 0;