Add an "--auto" flag to arc diff to activate heuristics
Add an "--auto" flag to arc diff to activate heuristics

Summary:
For some workflows (all Mercurial, all SVN, some git) I eventually want arc to
pick between "arc --create" and "arc --update" automatically.

"arc which" laid the groundwork for this. For now, implement it as an optional
flag because I think there are still some rough edges on this pathway (for
example, handling of commit messages when errors happen).

When 'arc diff --auto' is invoked, guess whether the user meant --create or
--update.

Test Plan: Created this revision with 'arc diff --auto'.

Reviewers: Makinde, btrahan

Reviewed By: btrahan

CC: aran, epriestley

Maniphest Tasks: T614

Differential Revision: https://secure.phabricator.com/D1648

chundongwang/arcanist,alexmv/arcanist,sneakpeeq/arcanist,r4nt/arcanist,wikimedia/phabricator-arcanist,uber/arcanist,julkiewicz/arcanist,memsql/arcanist,coursera/arcanist,uber/arcanist,zhihu/arcanist,calblueprint/arcanist,folsom-labs/arcanist,r4nt/arcanist,codelabs-ch/arcanist,zhihu/arcanist,wharris/arcanist,Khan/arcanist,codelabs-ch/arcanist,r4nt/arcanist,eSpark/arcanist,wxstars/arcanist,folsom-labs/arcanist,Symplicity/arcanist,PageUpPeopleOrg/arcanist-patches,haskell-infra/arcanist,folsom-labs/arcanist,dguo-coursera/arcanist,uber/arcanist,fivestars/arcanist,calblueprint/arcanist,phacility/arcanist,zhihu/arcanist,uber/arcanist,chundongwang/arcanist,aik099/arcanist,wxstars/arcanist,Symplicity/arcanist,alexmv/arcanist,wharris/arcanist,memsql/arcanist,coursera/arcanist,chundongwang/arcanist,wharris/arcanist,eSpark/arcanist,dguo-coursera/arcanist,julkiewicz/arcanist,wikimedia/phabricator-arcanist,phacility/arcanist,fivestars/arcanist,sneakpeeq/arcanist,aik099/arcanist,coursera/arcanist,Khan/arcanist,eSpark/arcanist,memsql/arcanist,PageUpPeopleOrg/arcanist-patches,aik099/arcanist,kevinseelbach/arcanist,coursera/arcanist,Khan/arcanist,phacility/arcanist,Khan/arcanist,hach-que/arcanist,KieranHayes/arcanist,calblueprint/arcanist,PageUpPeopleOrg/arcanist-patches,jra3/arcanist,dguo-coursera/arcanist,hach-que/arcanist,dguo-coursera/arcanist,sneakpeeq/arcanist,chundongwang/arcanist,haskell-infra/arcanist,r4nt/arcanist,kevinseelbach/arcanist,folsom-labs/arcanist,kevinseelbach/arcanist,fivestars/arcanist,hach-que/arcanist,julkiewicz/arcanist,jra3/arcanist,calblueprint/arcanist,fivestars/arcanist,wikimedia/phabricator-arcanist,wharris/arcanist,jra3/arcanist,KieranHayes/arcanist,Symplicity/arcanist,alexmv/arcanist,Symplicity/arcanist,aik099/arcanist,codelabs-ch/arcanist,julkiewicz/arcanist,haskell-infra/arcanist,jra3/arcanist,kevinseelbach/arcanist,KieranHayes/arcanist,eSpark/arcanist,wxstars/arcanist,PageUpPeopleOrg/arcanist-patches,zhihu/arcanist,codelabs-ch/arcanist,haskell-infra/arcanist,phacility/arcanist,KieranHayes/arcanist,memsql/arcanist,wxstars/arcanist,sneakpeeq/arcanist,hach-que/arcanist,wikimedia/phabricator-arcanist,alexmv/arcanist,phacility/arcanist,codelabs-ch/arcanist