Put all public methods in Pretty's implementation.

Look if this would make sense:

```dart
abstract class Pretty {
  int get indentation => _DEFAULT_INDENTATION;

  Document prettyMap(Map<Object, Object> map) =>
    _mapToDocument(map, indentation);

  Document prettyList(Iterable list) => 
    _mapToDocument(list, indentation);

  Document prettyTree(String name, Iterable<Document> iterable) =>
    text(name) + _enclose(iterable,
        (space + openingBrace), closingBrace, empty, indentation);


  ....................................................
}
```

Now `Tree` becomes:
```dart
class Tree extends Object with Pretty {
   final String name;
   final List<Tree> children;
 
   Tree(this.name, this.children);
 
   Document get pretty =>
     prettyTree(name, children.map((Tree t) => t.pretty));
  
  // If clients want to alter indentation, they override `indentation` getter
  // int get indentation => 4;
}
```

Do you think it's a good idea to put all in the `Pretty` mixin?