topic: add a `exp….topic.linear-merge` option to allow some oedipus

If this option is set to `from-branch`, a user can call `hg merge some-topic`
from a bare branch even if `some-topic` is a direct descendant of the current
working copy parents. This was previously denied if the changesets was on the
same branch, since the result would be an "oedipus merge".

Some user have been requesting this, and this type of merge is one of Gitlab
standard way of merging a "Merge Request". That new option will unlock issue
`heptapod#200` and make this mode available for those who wants it.
8 jobs for topic/default/oedipus-merge in 6 minutes and 1 second (queued for 1 second)
Status Job ID Name Coverage
  Test
passed checks-py2 #113189

00:02:11

passed checks-py3 #113190

00:02:21

passed doc #113195

00:00:39

manual pytype #113188
allowed to fail manual
passed tests-py2-cext #113191

00:04:15

passed tests-py2-pure #113192

00:03:58

passed tests-py3-cext #113193

00:06:00

passed tests-py3-pure #113194

00:05:51