Implement the --exclude-common-ancestry log option.
* bzrlib/tests/test_log.py:
(TestLogExcludeAncestry): Test exclude-common-ancestry behaviour.
* bzrlib/log.py:
(_DEFAULT_REQUEST_PARAMS, make_log_request_dict)
(_DefaultLogGenerator._log_revision_iterator_using_delta_matching)
(_DefaultLogGenerator._log_revision_iterator_using_per_file_graph)
(_calc_view_revisions, _generate_all_revisions)
(_graph_view_revisions): Propagate the exclude-common-ancestry
option... 7 places, 5 layers and counting...
(_calc_view_revisions): Get direction control back.
(_generate_flat_revisions, _generate_all_revisions): Leave
direction control to upper layers.
* bzrlib/builtins.py:
(cmd_log): Add an exclude-common-ancestry option.
(cmd_log.run): Propagate the exclude-common-ancestry option.
* bzrlib/branch.py:
(Branch._filter_start_non_ancestors): Avoid ambigiuty about which
side of the range is filtered here.