Add directive for providing saving updates to buttons 

This wires up the loading/success button state seen in the pattern library (http://localhost:5000/dev/pattern-library) with a directive.

The idea is that a button is given a an attribute that targets a form.

    <button status-button="my-test-form">Update</button>

The controller that handles that form would then trigger events on the scope to notify others of it's current state.

```js
elem.on('submit', function () {
  scope.$emit('form-state', 'my-test-form', 'loading');
  someService.update().then(function () {
      scope.$emit('form-state', 'my-test-form', 'success');
  });
});
```

This was primarily added for the account forms so that the user gets some feedback when the form has submitted, after they change their email/password.

@hypothesis/developers please review.
If you made the template into the actual template property of the directive and used transclude then you can go back to just having a linking function only.