Labels redesign

Add a label as a wrapping element instead of being inside the form
items. That way the form item doesn't have to be aware of whether it has
a label or not, and the label manages its many forms