feature: Prepare metrics for heka.

* Send metrics to stderr after flattening/formatting.

issue #1190
Clean up metrics based on @kparlante's suggestions.

* Add additional fields to logged metrics: lang,  hostname, pid, v, agent.
* Rename `time` to `date`
* Update tests.
Change `date` to `time`. Thanks @pdehaan for catching the error!
Store event data in two arrays, `events` and `event_durations`
Set `context` to `web` and `service` to `none` if not specified.

Simplify copying of fields.
refactor(client): Move all mixins to `views/mixins` from `lib`

* They just make more sense here.

fixes #1287
fix(client): Remove the ability for IE8 and IE10+ to show the password field.

Add the `no-toggle-pw` class to the body if the browser does not support toggling the password field type.
Add the `reveal-pw` which indicates the browser has its own password show mechanism. Hard coded to >= IE10.

fixes #1114
fixes #1015

.
Merge pull request #1288 from mozilla/issue-1287-move-view-mixins

refactor(client): Move all mixins to `views/mixins` from `lib`
Merge branch 'master' into issue-1114-ie8-password-toggle
Merge branch 'issue-1114-ie8-password-toggle'
refactor(client): Add a timer-mixin that takes care of setTimeout housekeeping.
Convert modules to use timer-mixin.setTimeout
Move timer-mixin into views/mixins subdirectory.
Cleanup based on @zaach's suggestions.

* Save `this._workingTimout` when setting the working timeout!
* Wrap setTimeout tests in a `TestHelpers.wrapAssertion` to ensure tests complete even if they fail.
fix(client): Check the user's old password before attempting a change password.

* Add 'checkPassword' to fxa-client.js
* Check the user's pasword before checking whether the passwords are the same.

fixes #1118
Change `assert.ok(false,` to `assert.fail`. Thanks @zaach!
feature(client): Repopulate form fields after visiting the TOS/PP agreements.

fixes #1226
Replace `_savePrefillInfo` with the already built in `beforeDestroy`.

* No need to hook up _savePrefillInfo on every click handler!
Call `enableSubmitIfValid` from form.js->afterRender so subclasses do not have to do this themselves.

* Fixes a problem on signup where the "next" button is not enabled if all three fields filled out, the user clicks TOS, then "back."
fix(client): Fix the IE8 password toggle test for real this time.

issue #1114