add internals module
use functors for button implementations

(easier to implement eliom-widgets using these
 functors)