Added a ButtonActor.

- The behavior of the button is encapsulated in an actor whereas the
rendering is done in a SpriteAvatar.
- Added a way for avatar to send back events to "acquaintances".
- The ImageSprite now has "states" defining its appearances, it can
switch state to chane appearance.