This patch adds the functionality to use the full copytracing even if
experimental.copytrace = heuristics in cases when drafts are involved.
This is also a part of copytrace extension in fbext.
This also adds tests which are also taken from fbext.
.. feature::
The `heuristics` option for `experimental.copytrace` performs full copytracing if both source and destination branches contains non-public changsets only.
Please comment "why" instead of "what this is doing."