Correction of tree when branches' width < root's width

* The root adds a fake node as a branch.
Simplification to calc a node's width; option to set leaves spaces

* The width of a leaf is determined by the higher level function.
* Fn to print a leaf.
* There are a lot of space for more simplifications, like calculating
a subtree's width by demand instead of doing it just once. It's
simpler but less efficient.
Fixed bugs with leaves spaces and line spaces

* The spaces for every level are more predictable.
* A root always fill all its width.
Just code simplifications and cleaning
Better solution for the problem of roots wider than branches

* The first branch is expanded using blank spaces.
* A lot of docs were added.
Tests for two different trees