Splits code in EmsCommon#update

Splits update method into several smaller methods according to button
used.
Would this be clearer?

```ruby
self.send("update_button_#{params]:button}")
```

or is that a security issue since it accesses params?  If so, perhaps...

```
raise "Whatever the exception is for invalid values in params" unless params[:button].in?(whitelist)
self.send("update_button_#{params[:button]}")
```

I see that the original code didn't handle the "else" condition either, that is, when the params[:button] doesn't exist.  Not sure what would happen in the old code.

cc @martinpovolny Thoughts here?