reorganize eba using functors for main modules

using a mix of functors and object to configure eba, functors
provide the initialization of a module in instanciation, and objects
are pretty good with a default implementation with inheritance
add eba_user and improve eba_db organisations

a lots of changes in this commit again, some db schemas
have been modified too, because of the new implementation
and because of future features (multiple emails for email for
example)
add hash functions into db config class