Use an Arborescence class.
Use option classes for query build.
Improve query builds.

Improve context management.
Most of options now handle useModel, useAlias and useResultAlias.
Clean code of options.
Add backquotes arround tables, alias, and fields.
Stop using callbacks for option result.

- Use queries protected methods with Option in parameter.
- Implement Query::__call() to provide a public but controlled access to
  query options to users.
Desgin Arborescence in a tree structure.
Change Option construction to accept an optional arborescence
Accept "has" option with subconditions.

Big step. Many things added:
- new Attribute class.
- Composite pattern for Condition with a new ConditionGroup class.
- Change of coding convention (stop of bad-hungarian notation) ongoing.
- Adaptation of query classes and option classes to fit composite pattern.

Code very ugly.
Remove wrong Hungarian notation.

And:
- Change Model::_fill() to Model::_hydrate().
- Add a useSetter parameter to Model::_hydrate().
Fix namespace mistake.
Documentation of Model::_attr()