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.
don't use `(` and `)` for `typeof` since it's an operator.