Gate singleton responders.

Imagine that you want a very particular behaviour
for every object of a type. Imagine, for example,
that you have Button:Gate and every button is
supposed to perform a particular action.

Then you can now type:

```javascript
var b = new Button("erase_id", null,
   {
      do_onmouseover: function (event, element){
         alert("I'm erasing your database! :p")
      }
   }
)
```
Merge branch 'feature/brain' into develop