forms.js - save forms submission content in a beacon

With this plugin all form submissions on a page are sent as a seperate beacon to the beacon server
this way you gain insight into the way people use your application support them beyond your normal
analysis and information sources.

Data gathered by this plugin may look like this:

```json
[
  {
    "name": "text",
    "value": "Cool",
    "type": "text",
    "id": "text"
  },
  {
    "name": "price_from",
    "value": "1",
    "type": "number",
    "id": "number"
  },
  {
    "name": "price_to",
    "value": "10",
    "type": "number",
    "id": "number"
  }
]
```

Where elements of the objects in the array map to this in the DOM:

- `name`: the `name` tag of a particular input element or textarea or other form submittable element
- `value`: the value returned by the browser for an element
- `type`: the type of an element such as text, password, number, radio, etc.
- `id`: the id attribute of the element

Legacy applications with only a limited amount of supportabillity and analytics on their own may be
helped by adding this to the customer support tool chain so as to understand what a user was using
the application for and help focus improvement plans on a specific goal.
Here's another option I thought of with little extra code and/or work.

If the form has a `data-sensitive` or `data-boomerang-sensitive` attribute and that attribute is `"true"` we could skip submitting it all together.

This could also expanded into a general "standard" where developers may add a sensitive tag to an element in the code and 3rd party tools MAY acknowledge that by skipping the content. Similiar to the way the DNT(Do-Not-Track) header in HTTP works.

On the other hand adding it to the form itself may skip data that isn't necessairly sensitive but still included in the form. So another option would be searching for the attribute in the input elements.