Use fieldset sted invalid wrapping of inputs with label

Previously, the phone number component inputs were wrapped in a single label
element. This is invalid, however, and browsers set focus back to the first
input if the user clicks to another inside the label.

Instead, use a fieldset and label each input.

[deliver #48624411]
Remove required attributes

FF marks all required fields as invalid when we clear them after submit. Since
the required attr is not respected by all supported browsers anyway, remove it
to fix the bug.

[deliver #48595233]
Add a demo page

/test/assets/demo.html will load the scripts from test/assets/ and attempt to
POST any subscriptions to /api/v2/widget/WIDGETID/subscribe/MSISDN.

WIDGETID defaults to 'abc123'. Override via the 'widgetId' arg when building:
    grunt --widgetId def456
Use data-pattern sted pattern

Some browsers mark the phone fields invalid as the user types, which is
undesirable. Workaround is to use `data-pattern` instead of `pattern` to store
the validation regex.
Keep inputs on one line