setAttributes(element, id, args) {
    element.setAttribute(L10NID_ATTR_NAME, id);
    if (args) {
      element.setAttribute(L10NARGS_ATTR_NAME, JSON.stringify(args));
    } else {
      element.removeAttribute(L10NARGS_ATTR_NAME);
    }
    return element;
  }
Set the `data-l10n-id` and `data-l10n-args` attributes on DOM elements.
FluentDOM makes use of mutation observers to detect changes
to `data-l10n-*` attributes and translate elements asynchronously.
`setAttributes` is a convenience method which allows to translate
DOM elements declaratively.

You should always prefer to use `data-l10n-id` on elements (statically in
HTML or dynamically via `setAttributes`) over manually retrieving
translations with `format`.  The use of attributes ensures that the
elements can be retranslated when the user changes their language
preferences.

```javascript
localization.setAttributes(
  document.querySelector('#welcome'), 'hello', { who: 'world' }
);
```

This will set the following attributes on the `#welcome` element.
The MutationObserver will pick up this change and will localize the element
asynchronously.

```html
<p id='welcome'
  data-l10n-id='hello'
  data-l10n-args='{"who": "world"}'>
</p>
```

@param {Element}                element - Element to set attributes on
@param {string}                 id      - l10n-id string
@param {Object<string, string>} args    - KVP list of l10n arguments
@returns {Element}