Request lifecycle events

Adds `send`, `error`, `success`, and `complete` lifecycle events. Fixes #5.

I'm struggling to get the bower dependencies installed locally so no tests yet, but this is a good sketch of what the events might look like.
What's left are tests for the async-form behavior provided by this component. I spent hours trying to get the tests to pass on master, and this branch, and had to admit defeat. The complexity of replacing JSON content in an iframe response that's passed into `window.eval` in an inline script broke me. I don't think testing normal form posting behavior helps us here, since we only care about async-forms.