mv BDD tasks to the package '.tasks.bdd'
User -> User<T extends User>

fix fluent interfaces of User's subclasses:
they can now extend User and keep the fluent interface
update User javadoc
add unit tests for User#equals
add wiki page Tutorial